//package org.JavaIncloud.java; 
 
import  java.util.HashMap ; 
import  java.util.Map ; 
import  java.util.Map.Entry ; 
 
public  class  CommonOpetationWithMap 
{ 
	public  static  void  main
( String ...
JavaInCloud )  	{ 
		/*create an HashMap(a class implements Map) and assign to a Map as we can not create object for Map interface*/ 
 
		//Store some dataBases name to the collection of dataBases object 
		dataBases.put ( 100 , "Oracle" ) ;  dataBases.put ( 101 , "MySQL" ) ;    dataBases.put ( 102 , "Teradata" ) ; 	  
		dataBases.put ( 103 , "Sybase" ) ;  dataBases.put ( 104 , "MongoDB" ) ;  dataBases.put ( 105 , "DB2" ) ; 
		dataBases.put ( 106 , "SQLite" ) ;  dataBases.put ( 107 , "Derby" ) ;    dataBases.put ( 108 , "SQL-Server" ) ; 
		//Duplicate key(108) is not allowing simply it'll ignore and over write by Openbase.  
		dataBases.put ( 108 , "Openbase" ) ;  
		//You can duplicate the value(here Derby) for HashMap 
		dataBases.put ( 109 ,"Derby" ) ;    
 
		System .
out .
println ( dataBases
) ;  		//{102=Teradata,103=Sybase,100=Oracle,101=MySQL,108=Openbase,109=Derby,106=SQLite,107=Derby,104=MongoDB,105=DB2} 
 
		//Print the key for value Derby if and only if map is not empty and it contain value Derby otherwise don't go inside 
		if ( ! dataBases.isEmpty ( )  &&  dataBases.containsValue ( "Derby" ) ) 
		{ 
			System .
out .
println ( "Size of dataBases>>" + dataBases.
size ( ) ) ; //10  			for  ( Entry
< Integer , String
>  dataBase 
:  dataBases.
entrySet ( ) )   			{ 
		        if  ( "Derby" .equals ( dataBase.getValue ( ) ) )  
		        { 
		        	int  key	= 	dataBase.getKey ( ) ;  //auto unboxing from Integer to int 
		        } 
		        //109 107   
		        //N.B: As with value "Derby" two key is associated hence it is printing 109 and 107 
		    } 
		} 
	} 
} 
 
Ly9wYWNrYWdlIG9yZy5KYXZhSW5jbG91ZC5qYXZhOwoKaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOwppbXBvcnQgamF2YS51dGlsLk1hcDsKaW1wb3J0IGphdmEudXRpbC5NYXAuRW50cnk7CgpwdWJsaWMgY2xhc3MgQ29tbW9uT3BldGF0aW9uV2l0aE1hcCAKewoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nLi4uSmF2YUluQ2xvdWQpCgl7CgkJLypjcmVhdGUgYW4gSGFzaE1hcChhIGNsYXNzIGltcGxlbWVudHMgTWFwKSBhbmQgYXNzaWduIHRvIGEgTWFwIGFzIHdlIGNhbiBub3QgY3JlYXRlIG9iamVjdCBmb3IgTWFwIGludGVyZmFjZSovCgkJTWFwPEludGVnZXIsIFN0cmluZz4gZGF0YUJhc2VzCT0JbmV3IEhhc2hNYXA8SW50ZWdlciwgU3RyaW5nPigpOwoJCQoJCS8vU3RvcmUgc29tZSBkYXRhQmFzZXMgbmFtZSB0byB0aGUgY29sbGVjdGlvbiBvZiBkYXRhQmFzZXMgb2JqZWN0CgkJZGF0YUJhc2VzLnB1dCgxMDAsICJPcmFjbGUiKTsgZGF0YUJhc2VzLnB1dCgxMDEsICJNeVNRTCIpOyAgIGRhdGFCYXNlcy5wdXQoMTAyLCAiVGVyYWRhdGEiKTsJICAKCQlkYXRhQmFzZXMucHV0KDEwMywgIlN5YmFzZSIpOyBkYXRhQmFzZXMucHV0KDEwNCwgIk1vbmdvREIiKTsgZGF0YUJhc2VzLnB1dCgxMDUsICJEQjIiKTsKCQlkYXRhQmFzZXMucHV0KDEwNiwgIlNRTGl0ZSIpOyBkYXRhQmFzZXMucHV0KDEwNywgIkRlcmJ5Iik7ICAgZGF0YUJhc2VzLnB1dCgxMDgsICJTUUwtU2VydmVyIik7CgkJLy9EdXBsaWNhdGUga2V5KDEwOCkgaXMgbm90IGFsbG93aW5nIHNpbXBseSBpdCdsbCBpZ25vcmUgYW5kIG92ZXIgd3JpdGUgYnkgT3BlbmJhc2UuIAoJCWRhdGFCYXNlcy5wdXQoMTA4LCAiT3BlbmJhc2UiKTsgCgkJLy9Zb3UgY2FuIGR1cGxpY2F0ZSB0aGUgdmFsdWUoaGVyZSBEZXJieSkgZm9yIEhhc2hNYXAKCQlkYXRhQmFzZXMucHV0KDEwOSwiRGVyYnkiKTsgICAKCQkKCQlTeXN0ZW0ub3V0LnByaW50bG4oZGF0YUJhc2VzKTsKCQkvL3sxMDI9VGVyYWRhdGEsMTAzPVN5YmFzZSwxMDA9T3JhY2xlLDEwMT1NeVNRTCwxMDg9T3BlbmJhc2UsMTA5PURlcmJ5LDEwNj1TUUxpdGUsMTA3PURlcmJ5LDEwND1Nb25nb0RCLDEwNT1EQjJ9CgoJCS8vUHJpbnQgdGhlIGtleSBmb3IgdmFsdWUgRGVyYnkgaWYgYW5kIG9ubHkgaWYgbWFwIGlzIG5vdCBlbXB0eSBhbmQgaXQgY29udGFpbiB2YWx1ZSBEZXJieSBvdGhlcndpc2UgZG9uJ3QgZ28gaW5zaWRlCgkJaWYoIWRhdGFCYXNlcy5pc0VtcHR5KCkgJiYgZGF0YUJhc2VzLmNvbnRhaW5zVmFsdWUoIkRlcmJ5IikpCgkJewoJCQlTeXN0ZW0ub3V0LnByaW50bG4oIlNpemUgb2YgZGF0YUJhc2VzPj4iK2RhdGFCYXNlcy5zaXplKCkpOy8vMTAKCQkJZm9yIChFbnRyeTxJbnRlZ2VyLCBTdHJpbmc+IGRhdGFCYXNlIDogZGF0YUJhc2VzLmVudHJ5U2V0KCkpIAoJCQl7CgkJICAgICAgICBpZiAoIkRlcmJ5Ii5lcXVhbHMoZGF0YUJhc2UuZ2V0VmFsdWUoKSkpIAoJCSAgICAgICAgewoJCSAgICAgICAgCWludCBrZXkJPQlkYXRhQmFzZS5nZXRLZXkoKTsgLy9hdXRvIHVuYm94aW5nIGZyb20gSW50ZWdlciB0byBpbnQKCQkgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KGtleSsiICIpOwoJCSAgICAgICAgfQoJCSAgICAgICAgLy8xMDkgMTA3ICAKCQkgICAgICAgIC8vTi5COiBBcyB3aXRoIHZhbHVlICJEZXJieSIgdHdvIGtleSBpcyBhc3NvY2lhdGVkIGhlbmNlIGl0IGlzIHByaW50aW5nIDEwOSBhbmQgMTA3CgkJICAgIH0KCQl9Cgl9Cn0K