In HashMap, if you need to use multiple attribute combinations as keys, you can combine the several attributes into one object as key. However, the problem is that, to do get, there is often no way to save the original put operation of the key object reference, at this time, you need to have key object cover the following hashcode() and equals( Object obj) is implemented. Sample code is as follows:
Public classTestkeyobject {Private LongID; Private inttype; PublicTestkeyobject (LongIdinttype) { This. ID =ID; This. Type =type; } Public LonggetId () {returnID; } Public voidSetId (LongID) { This. ID =ID; } Public intGetType () {returntype; } Public voidSetType (inttype) { This. Type =type; } //define how hashcode is calculated Public inthashcode () {intRET =NewLong (ID). hashcode () ^NewInteger (type). Hashcode (); //you can also calculate hashcode in the following way//int ret = string.valueof (ID). hashcode () ^//string.valueof (type). Hashcode ();System.out.println (ret); returnret; } //define conditions for equality Public Booleanequals (Object obj) {if(NULL==obj) { return false; } if(! (objinstanceoftestkeyobject)) { return false; } testkeyobject tmpobj=(testkeyobject) obj; returnTmpobj.id = = id && Tmpobj.type = =type; }}
Java Learning note--hashmap using object as key "reprint"