Map接口概述
1,特点:
- 用于存储任意键值对(key - value)
- 键:无序、无下标、不允许重复(唯一)
- 值:无序、无下标、允许重复
2,常用方法:
- V put(K key, V value) 将对象存到集合中,关联键值
- Object get(Object key) 根据键获得对应的值
- Set<K>` 返回所有的Key
- Collection values() 返回包含所有值的Collection集合
- Set<Map.Entry<K, V>> 键值匹配的Set集合
Map接口简单应用
代码语言:javascript复制//创建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自动排序。