概述
特点:
1.双列集合
2.Key不重复,value可重复
3.Key,value数据类型可以相同,也可以不同
4.Key和value一一对应
常用方法
V put(Object key)
返回值是该key值之前对应的value值。
V remove(Object key)
返回值是该key值之前对应的value值。(使用包装类接收,int不能接受null值)。
V get(Object key)
根据指定键,在map集合中找对应的值。
Boolean containsKey(Object key)
判断集合中是否包含指定的键。
Keyset()
entrySet()
遍历
通过键找值的方式遍历map集合。
- keySet()将map集合中所有的key取出放入set集合。
- 通过增强for循环或迭代器遍历set集合。来获取Map集合中的每一个key。
- 使用get(key)获取value。
- 使用Map方法entrySet()将map集合中多个Entry对象取出来,存储到一个set集合。
- 遍历set集合,获取每一个Entry对象
- 使用Entry对象中的方法getKey(),getValue()获取键与值。
System.out.println("keySet方法迭代器遍历:");
Set<Character> set=map.keySet();
// 迭代器遍历
Iterator<Character> it=set.iterator();
while(it.hasNext()) {
char ch1=it.next();
System.out.print(ch1+"->>"+map.get(ch1)+"\t");
}
System.out.println();
System.out.println("keySet方法forEach遍历:");
// forEach遍历
for (Character arr:set) {
System.out.print(arr+"-->"+map.get(arr)+"\t");
}
使用entry对象遍历键值对
Set<Map.Entry<Character,Integer>> set1=map.entrySet();
// 迭代器遍历
System.out.println("Entry对象迭代器遍历:");
Iterator<Map.Entry<Character,Integer>> it1=set1.iterator();
while (it1.hasNext()){
Map.Entry<Character,Integer> entry=it1.next();
Character ch2=entry.getKey();
Integer inte=entry.getValue();
System.out.print(ch2+"-->"+inte+"\t");
}
System.out.println();
// forEach遍历
System.out.println("Entry对象forEach遍历:");
for (Map.Entry<Character,Integer> arr1:set1) {
Map.Entry<Character,Integer> entry1=arr1;
System.out.print(entry1.getKey()+"-->"+entry1.getValue()+"\t");
}
HashMap和LinkedHashMap
无序和有序。