标签:
1.Map接口
Map接口定义的集合又称查询表,用于存储所谓"Key-Value"映射对。Key可以看成是Value的索引,作为Key的对象在集合中不可以重复。
根据内部结构的不同,Map接口有多种实现类,其中常用的内部类为hash表实现的HashMap和内部为排序二叉树实现的TreeMap。
2.put()方法
Map接口中定义了向Map中存放元素的put方法:
-V put(K key,V value)
将Key-Value对存入Map,如果在集合中已经包含该Key,则操作将替换该Key所对应的Value,返回值为该Key原来所对应的Value(如果没有则返回null)。
3.get()方法
Map接口中定义了从Map中获取元素的get方法:
-V get(Object Key)
返回参数key所对应的Value对象,如果不存在则返回null。
4.containsKey()方法
Map接口中定义了判断某个key是否在Map中存在:
-boolean containsKey(Object key);
若Map中包含给定的key则返回true,否则返回false.
5.hashCode方法
从HashMap的原理中我们可以看到,key的hashcode()方法的返回值对HashMap存储元素时会起着很重要的作用。而hashCode方法实际上是在Object中定义的。那么应妥善重写该方法;
对于重写了equals方法的对象,一般要妥善的重写继承自Object类的hashCode方法(Object提供的hashCode方法将返回该对象所在内存地址的整数形式)。
重写hashCode方法是需注意两点:其一、与equals方法的一致性,即equals比较返回true的两个对象其hashCode()方法返回值应该相同;其二、hashCode返回的数值应符合hash算法的要求,试想如果有很多对象的hashCode方法的返回值都相同,则会大大降低hash表的效率,一般情况下可以使用IDE(如Eclipse)提供的工具自动生成HashCode方法。
6.装载因子及HashMap优化。
Capacity:容量,hash表里bucket(桶)的数量,也就是散列数组大小。
Initial capacity:初始容量,创建hash表时,初始bucket的数量,默认构建容量是16,也可以使用特定的容量。
Size:大小,当前散列表中存储数据的数量。
Load factor:加载因子,默认值0.75(就是75%),当向散列表增加数据时如果
标签:
原文地址:http://www.cnblogs.com/Crow00/p/4495254.html