Map接口概述

1,特点:

  • 用于存储任意键值对(key - value)
  • 键:无序、无下标、不允许重复(唯一
  • 值:无序、无下标、允许重复

2,常用方法:

  1. V put(K key, V value) 将对象存到集合中,关联键值
  2. Object get(Object key) 根据键获得对应的值
  3. Set<K>` 返回所有的Key
  4. Collection values() 返回包含所有值的Collection集合
  5. Set<Map.Entry<K, V>> 键值匹配的Set集合

Map接口简单应用

//创建Map集合
Map<String, String> map = new HashMap<>();
// 1. 添加元素
map.put("cn", "牛哇");
map.put("uk", "牛马");
map.put("cn", "niuniu");             // 会替换第一个 
// 2. 删除
map.remove("uk");
// 3. 遍历
// 3.1 使用KeySet()
//Set<String> keyset = map.keySet(); // 所有Key的set集合
for(String key : map.keyset){
  sout(key + "---" + map.get(key));
}
// 3.2 使用entrySet()
//Set<Map.Entry<String, String>> entries = map.entrySet();
for(Map.Entry<String, String> entry : map.entries){
  sout(entry.getKey() + "---" + entry.getValue();
}

Map的实现类

1,HashMap[重点]

存储结构:哈希表(数组+链表+红黑树)

XXXX有空补充

2,HashTable

线程安全,运行效率慢。

不允许null作为key或是value。

3,Properties

hashtable的子类,要求key和value都是string,通常用于配置文件的读取。

4,TreeMap

实现了SortedMap接口(是map的子接口),可以对key自动排序。