一、特点
1.无序,键值对,键不能重复,值可以重复,
2.键重复则覆盖,没有继承Collection接口
二、遍历方式
1.先获取所有键的Set集合,再遍历(通过键获取值)
2.取出保存所有Entry的Set,再遍历此Set即可
三、实现类
1.HashMap:特点:1、线程不安全,最常用,速度快;
2、内部采用数组来存放数据
2.HashTable:特点:线程安全,不太常用
3.ConcurrentHashMap:特点:线程安全,比HashTable性能高
4.TreeMap:特点:1、key值按一定的顺序排序
2、添加或获取元素时性能较HashMap慢,因为需求维护内部的红黑树,用于保证key值的顺序
5.LinkedHashMap:特点:1.继承HashMap
2、LinkedHashMap是有序的,且默认为插入顺序
3、当我们希望有顺序地去存储key-value时,就需要使用LinkedHashMap了
示例: Map<String, String> linkedHashMap = new LinkedHashMap<>();
linkedHashMap.put("name1", "josan1");
linkedHashMap.put("name2", "josan2");
linkedHashMap.put("name3", "josan3");
Set<Entry<String, String>> set = linkedHashMap.entrySet();
Iterator<Entry<String, String>> iterator = set.iterator();
while(iterator.hasNext()) {
Entry entry = iterator.next();
String key = (String) entry.getKey();
String value = (String) entry.getValue();
System.out.println("key:" + key + ",value:" + value);
}
四、排序
1、java.lang.Comparable
2、java.util.Comparator
五、工具类
1、Collections:提供一组静态方法操作集合
2、Arrays:提供一组静态方法操作数组