一 Map特点
1 双列集合 ,一个键(key)对应一个值(value)
2 键不可以重复,值可以重复(因为键是由Set集合组成的)
3 值可以null
- 所以 定义一个泛型为String类型的List集合,统计该集合中每个字符出现的次数——>字符--次数:一一对应关系,所以用HashMap
二 Map集合常用方法
put(K key,V value) 向map中添加元素
size() 获取map集合的大小
containsKey(K k) 判断集合中是否包含指定的键
containsValue(V v) 判断集合中是否包含指定的值
isEmpty() 判断集合是否为空
clear() 清空
remove(K k) 删除
注:如果键存在,值会进行覆盖
三 Map集合的两种遍历方式
1 keySet()方法
通过Keyset()获取所有的key然后通过Key获取对应的value
HashMap<Student,String> map = new HashMap<>();
Student s1 = new Student("棒棒",19);
Student s2 = new Student("滴滴",18);
Student s3 = new Student("跳跳",17);
map.put(s1,"内蒙");
map.put(s2,"湖南");
map.put(s3,"南京");
//方法一:使用KeySet获取所有的key
Set<Student> keys=map.keySet();
for (Student key : keys) {
String value=map.get(keys);
System.out.println(key+"-"+value);
}
2 entrySet()方法
通过entrySet()获取所有的key value,然后通过Key获取对应的value
方法二:使用EntrySet获取键和值
Set<Map.Entry<Student,String>> entries=map.entrySet();
for (Map.Entry<Student, String> entry : entries) {
Student key=entry.getKey();
String value=entry.getValue();
System.out.println(key+"-"+value);
HashMap集合底层原理
是哈希表结构
依赖hashCode()方法和equals()方法保证键唯一性
如果键要存储的是自定义对象,要重写hashCode()和equals()方法
TreeMap集合底层原理
是红黑树结构
依赖自然排序或者比较器排序,对键进行排序
如果键要存储自定义对象,要定义排序的规则
标签:Map,key,map,value,Student,集合 From: https://www.cnblogs.com/Sco-/p/16990052.html