Map
Map
java.util.Map<K,V>
- 是一个双列集合,一个元素包含两个值(key,value)
- map集合中元素key和value的元素类型可以相同,也可以不同
- key不能重复,value可以重复
- key和value是对应关系
HashMap
java.util.HashMap
- 底层是哈希表,查询速度相当快
- 是一个无序集合,存储和取出的顺序有可能不一致
LinkedHashMap
java.util.LinkedMap
- 底层是哈希表+链表
- 是一个有序集合,存储和取出的顺序是一致的
v put(k key,v value):将键和值添加到集合中
v remove(Object key):通过键删除值返回值
v get(Object key):通过键获取值
boolean containsKey(Object key):判断集合中是否包含指定的键
遍历
Set<K> keySet():返回包含键的set视图
Set<Map.Entry<K,V>> entrySet():返回包含映射的set视图
/*1.使用Map集合中的方法entrySet(),把map集合中多个Entry对象取出来,存储到Set集合中
2.遍历Set集合,获取每一个Entry对象
3.使用Entry对象中的getKey()和getValue()获取键和值*/
HashMap<String, String> hm = new HashMap<>();
hm.put("一","张三");
hm.put("二","李四");
hm.put("三","王五");
hm.put("四","赵六");
Set<String> strings = hm.keySet();
for (String string : strings) {
System.out.println(hm.get(string));
}
Set<Map.Entry<String, String>> entries = hm.entrySet();
for (Map.Entry<String, String> entry : entries) {
System.out.println(entry.getKey() +"--"+ entry.getValue());
}
Hashtable
底层是一个哈希表,是一个线程安全的集合,单线程,速度相对较慢,不能存储null
HashMap
底层是一个哈希表,是一个线程不安全的集合,多线程,速度相对较快,可以存储null
Properties
java.util.Hashtable<Object,Object>
java.util.Properties