Map接口不是Collection接口的继承,Map接口用户维护键/值,描述了从不重复的键到值的映射。
Map接口定义了存储“键—值映射对”的方法,Map中不能有重复的键,Map实现类中存储的“键-值”映射对是通过键来唯一
标识的,Map底层的“键”是用Set来存放的。所以存入Map中的映射对的“键”对应的类必须重写hashCode()和equals()
方法。
1、HashMap类:是使用频率最高的容器,提供所有可选的映射操作,内部对“键”用Set进行散列存放,所以根据“键”去取“值”
的效率很高,并且允许使用null值和null键,但不保证映射的顺序,特别是不保证该顺序是永远不变的。
2、LinkedHashMap类:可以依照插入的顺序来排列元素,增、删、改效率较高
注:LinkedHashMap类维护着一个运行与所有条目的双重链表列表。此双重链表列表定义了迭代顺序,改迭代顺序通常就是将键插入到
映射中的顺序,如果映射中重新插入键,插入顺序不受影响。
3、TreeMap类:TreeMap内部使用红黑树结构对“键”进行排序存放,所以放入TreeMap中的“键-值”对的“键”必须是可“排序”的。
注:使用TreeMap对自定义对象按某种情况排序,就需要用TreeMap(Comparator<?super K>comparator)来创建对象。
4、Properties类:表示了一个持久的属性集,可保存在流中或从流中加载。 |
|