读书人

关于HashMap的兑现

发布时间: 2012-11-08 08:48:11 作者: rapoo

关于HashMap的实现

[size=medium]
HashMap的存储原理

在数组中存储着一个个的Entity对象(key-value的关联数组),存储的位置是根据key的hashCode方法来确定的,如果key相同(hashCode相同、value相同)则会覆盖原有的对象值,如果key不同(hashCode相同、value不同),则会保留两个对象

        public class TestHashMap {   class MyKey{       @Override       public int hashCode(){        return 0;       }       @Override       public boolean equals(Object o){           return false;       }   }      @Test    public void testHashMap(){          Map <MyKey,String> map = new HashMap<MyKey,String>();          map.put(new MyKey(),"hello" );          map.put(new MyKey(), "guy");          for(MyKey mk : map.keySet()){              System.out.println(map.get(mk));          }    }}     

结果输出两个对象
http://www.ibm.com/developerworks/cn/java/j-lo-hash/
[/size]

读书人网 >编程

热点推荐