1.Hashmap是数组和链接的组合,数组用于保存值,如果在同一个数组的位置上存在多个值的话,用链接进行连接。因为HashMap在存储时有可能在同一个位置上存放多个值。这些数组的类型为entry类型。
2.HashMap存放数据时尽量不要把数据存放的太集中,效率就会变高。
3.HashMap存放值的时候,是按照键值对进行存放的,根据键的哈希码,找到数组的位置,然后把值存放到该位置。
4.hashMap的遍历方法:
a.使用keyset进行遍历:
Iterator i=hashmap.keyset().iterator();
while(i.hasnext())
{
Object key=i.next();
Obeject val=hashmap.get("key");
}
评价:此方法效率很低。
b.使用entryset进行遍历:
Iterator i=hashmap.entryset().iterator();
while(i.hasnext())
{
Map.entry entry=iterator.next();
Object key=entry.getKey();
Object val=.getValue();
}
5.如果用对象作为键的话,就要重写hashcode方法和equals方法,hashcode方法是用来得到对象的哈希码,而创建一个对象,他的这个方法默认是继承object的hashcode方法,而这个方法是根据对象的地址来判断它的哈希码的,如果两个对象,它的内部包含的值是相同 的,而是两个对象的话,哈希码就不同,而实际应该相同。
而equals方法是用来比较值是否相等。