Map里的key不允许重复,即同一个Map对象里面的任何两个key通过equals()比较总是返回false;
Set setEntry():返回Map中所包含的key-value对所组成的Set集合,每个集合元素都是Map.Entry对象(entry是Map的内部类)
Map中包含一个内部类:Entry,该类封装了key-value对,包含三个方法:
1.Object getKey():返回Entry包含的key值
2.Object getValue().返回Entry包含的value值
3.Object setValue():设置该Entry包含的value值,并返回新设置的value值。
我们可以把Map理解成特殊的Set,只是改Set包含的对象时特殊的Enty对象。而不是普通对象。
Hashtable,HashSet判断两个key相等的标准是:两个key通过equals方法返回true,hashcode的值也相等
Hashtable,HashSet判断两个value相等的标准是:两个value通过equals方法返回true
IdentityHashMap:比较严格 他是通过==来判断元素是否相等而不是equals
因为HashSet和HashMap、Hashtable都是用hash算法来决定其元素(对HashMap则是key)的存储
属性:
容量(capacity):hash表中桶的数量
初始化容量(initial capacity):创建hash表时桶的数量,hashMap和HashSet都允许在构造器中指定初始化容量
尺寸(size):当前散列表中的记录的数量
负载因子(load factor):负载引子等于"size/capacity"。负载因子为0,表示空的hash表,0。5表示半满的散列表
除此之外,hash表里还有一个“负载极限”,“负载极限”是一个0~!的数值,“负载极限”决定了hash表中的最大填满程度。
当hash表中飞负载因子到达指定的“负载极限”时,hash表会自动城北地增加容量(桶的数量)并将原有的对象重新分配,放进新的桶内,这称为rehashing
"负载期限"默认是0.75