文章目录
Map
Map的特点
1.Collection 中的集合称为单列集合, Map 中的集合称为双列集合。
2.Map 中的集合,元素是成对存在的,每个元素由键与值两部分组成,键->值。
Map集合的子类 : HashMap集合、LinkedHashMap集合。
HashMap
存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需 要重写键的hashCode()方法、equals()方法。
LinkedHashMap
HashMap下有个子类LinkedHashMap,存储数据采用的哈希表结构+链表结构。通过链 表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证的键的唯一、不重复,需要重写键的 hashCode()方法、equals()方法。
- Map集合有个子类叫HashMap(哈希表结构+无序),HashMap有个子类叫LinkedHashMap(哈希表+链表结构+有序)。
- HashMap和LinkedHashMap 保证键的唯一,不重复,需要重写键的hashCode()方法、equals()方法。
public static void main(String[] args) {
HashMap<String, Integer> map = new HashMap<>();//创建HashMap集合
map.put("张三",18);//放入元素
map.put("李四",20);
map.remove("李四");//删除元素
int age = map.get("张三");//通过键得到值
System.out.println(age);//18
Set<String> set = map.keySet();//将Map集合所有'键'加入到集合set中
System.out.println(set);//张三
Set<Entry<String,Integer>> set1 = map.entrySet();//将'键'和'值'一起作为对象加入set1中
System.out.println(set1);//张三=18
}
Map集合的遍历
键找值:通过元素中的键,获取键所对应的值
分析步骤:
- 获取Map中所有的键,由于键是唯一的,所以返回一个Set集合存储所有的键。方法提示: keyset()
- 遍历键的Set集合,得到每一个键。
- 根据键,获取键所对应的值。方法提示: get(K key)
public static void main(String[] args) {
HashMap<String, Integer> map = new HashMap<>();//创建HashMap集合
map.put("张三",18);//放入元素
map.put("李四",20);
map.put("王五",30);
Set<String> set = map.keySet();//将Map集合所有'键'加入到集合set中
for (String o : set) {
int value = map.get(o);
System.out.println("key的value是"+value);
}
}
键值对:即通过集合中每个键值对(Entry)对象,获取键值对(Entry)对象中的键与值。
- 键值对(Entry),Map中存放着key键和value值,这一对对象就叫键值对(Entry)
public static void main(String[] args) {
HashMap<String, Integer> map = new HashMap<>();//创建HashMap集合
map.put("张三",18);//放入元素
map.put("李四",20);
map.put("王五",30);
Set<Map.Entry<String,Integer>> entrySet = map.entrySet();//获取键值对对象的集合entrySet
for (Map.Entry<String, Integer> entry : entrySet) {
String key = entry.getKey();
Integer value = entry.getValue();
System.out.println(key+"对应的值是"+value);
}
}