存储双列数据,存储key-value对的数据,类似于函数y = f(x)
HashMap:作为Map的主要实现类,线程不安全,效率高,可以存储null的key和value
LinkedHashMap:保证在遍历map元素时,可以按照添加的顺序实现遍历。对于频繁的遍历操作,此类的执行效率高于HashMap
原因:在原有的HashMap底层结构的基础上,添加了一对指针,指向前一个和后一个元素
TreeMap:保证按照添加的key-value对进行排序,实现排序遍历,此时考虑key的自然排序或定制排序(底层使用红黑树)
Hashtable:作为古老的实现类,线程安全,效率低,不可以存储null的key和value
Properties:常用来处理配置文件。key和value都是String类型
key:无序的,不可重复的,使用Set存储所有的key
在HashMap中,要求key所在的类要重写equals()和hashCode()
value:无序的,可重复的
value所在类要求重写equals()
Entry:一个键值对(key - value)构成一个entry对象,key和value相当于两个属性
无序的,不可重复的,使用Set存储所有的entry
put(Object key , Object value)
将指定的key-value添加到(或修改)当前map对象中
HashMap map = new HashMap();
//添加操作
map.put("AA",123);
map.put("BB",79);
map.put("CC",56);
map.put("DD",123);
//修改操作
map.put("AA",87);//现有的key相同,就要替换原key中的值为新的value值
System.out.println(map);
putAll(Map m)
将m中所有的key-value对存放在当前的map中
HashMap m = new HashMap();
map.put("Ann",90);
map.put("Jack",80);
map.put("Lisa",70);
map.putAll(m);
System.out.println(map);//{AA=87, BB=79, CC=56, DD=123, Ann=90, Jack=80, Lisa=70}
remove(Object key)
移除指定key的key-value对,并返回value
System.out.println(map.remove("Ann"));//90
System.out.println(map);//{AA=87, BB=79, CC=56, DD=123, Jack=80, Lisa=70}
clear()
清空当前map中所有的数据,与map = null 操作不同
数据清理掉,对象依旧存在
此时map的长度为0
map.clear();
System.out.println(map);//{}
get(Object key)
获取指定key对应的value
HashMap map = new HashMap();
map.put("AA",123);
map.put("BB",79);
map.put("CC",56);
map.put("DD",123);
System.out.println(map.get("AA"));//123
containKey(Object key)
是否包含指定的key
System.out.println(map.containsKey("AA"));//true
containValue(Object value)
是否包含指定的value
如果map中有多个相同的value,只要找到第一个,就会返回true
System.out.println(map.containsValue(123));//true
size()
返回map中key-value对的个数
System.out.println(map.size());//4
isEmpty()
判断当前map是否为空
System.out.println(map.isEmpty());//false
equals(Object obj)
判断当前map和参数对象obj是否相等
HashMap map1 = new HashMap();
map1.put("AA",123);
map1.put("BB",79);
map1.put("CC",56);
map1.put("DD",123);
System.out.println(map.equals(map1));//true
keySet()
返回所有的key构成的Set集合
HashMap map = new HashMap();
map.put("AA",123);
map.put("BB",79);
map.put("CC",56);
map.put("DD",123);
System.out.println(map.keySet());//[AA, BB, CC, DD]
Set set = map.keySet();
Iterator iterator = set.iterator();
while (iterator.hasNext()){
System.out.println(iterator.next());
}
values()
遍历所有的value集
Collection values = map.values();
Iterator iterator1 = values.iterator();
while (iterator1.hasNext()){
System.out.println(iterator1.next());
}
//123
//79
//56
//123
entrySet()
遍历所有的key-value
entrySet集合中的元素都是entry
Set set1 = map.entrySet();
Iterator iterator2 = set1.iterator();
while (iterator2.hasNext()){
System.out.println(iterator2.next());
}
原文:https://www.cnblogs.com/CrabDumplings/p/13393014.html