🧀Map集合框架
Map集合和Collection集合没有任何关系。Collection集合是以单个方式存储元素的,而Map集合是以键值对的方式存储元素,所有Map集合的Key是无序不可重复的,key和value都是引用数据类型,存的都是内存的地址。
Map集合的实现类主要为HashMap、HashTable
:
🧀为什么使用Map集合
使用Map集合有以下几个优点:
1、快速查找和访问元素:
使用Map的键来访问和查找值,可以快速定位元素,而不需要遍历整个集合。
2、存储关联数据:
Map可以存储键值对,比如存储学生的姓名和成绩,可以通过学生的姓名快速获取到他的成绩。
3、高效的添加和删除元素:
Map提供了添加、删除和修改元素的方法,操作比较高效,而且不需要对集合进行重排。
4、对于大量数据的处理,可以提高效率:
如果需要处理大量的数据,使用Map可以比较快速地进行查找和访问,提高程序效率。
5、可以用于缓存数据:
Map可以将数据缓存到内存中,通过键值对的形式进行访问,这样可以避免频繁地查询数据库或者文件系统,提高了程序效率。
使用Map集合可以提高程序的效率和可读性,而且可以方便地存储和访问关联数据
🧀Map集合的常用方法
1, HashMap、TreeMap或者LinkedHashMap :将对象实例化
//1、创建一个Mop集合
Map map = new HashMap();
:
2,put() :添加键值对
Map map=new HashMap();
//添加键值对
map.put("杨过","小龙女");
map.put("郭靖","黄蓉");
map.put("我","刘亦菲");
:
3, map.get(key) :通过键获取对应的值
Map map=new HashMap();
map.put("杨过","小龙女");
通过键获取对应的值
map.get("杨过");//小龙女
:
4, map.keySet() : 获取键的集合
Map map=new HashMap();
map.put("杨过","小龙女");
map.put("郭靖","黄蓉");
map.put("我","刘亦菲");
//获取键的集合
Set set = map.keySet();//杨过--郭靖--我
:
5,map.entrySet() : 获取entry(键值对)对象
🍧entry.getKey() :获取键 ; entry.getValue() : 获取值
Map map=new HashMap();
map.put("杨过","小龙女");
map.put("郭靖","黄蓉");
map.put("我","刘亦菲");
//获取entry(键值对)对象
Set set = map.entrySet();
//遍历entry
for (Map.Entry entry : set) {
//获取键
Object key= entry.getKey();//杨过--郭靖--我
//获取值
Object value= entry.getValue(); //小龙女--黄蓉--刘亦菲
}
:
🧀Map集合的遍历方式
1,先使用 keySet() 方法获取键集合,在通过get()方法获取值
🍧 使用增强for遍历键集合
//1、创建一个Mop集合
Map map=new HashMap();
//添加键值对
map.put("杨过","小龙女");
map.put("郭靖","黄蓉");
map.put("我","刘亦菲");
Set set = map.keySet();
使用增强for遍历
for (Object key : set) {
Object value = map.get(key);
System.out.println(key+"="+value);
}
:
🍧使用迭代器来遍历键集合
Map map=new HashMap();
map.put("杨过","小龙女");
map.put("郭靖","黄蓉");
map.put("我","刘亦菲");
Set set = map.keySet();
使用迭代器
Iterator iterator=set.iterator();
while (iterator.hasNext()){
Object key = iterator.next();
Object value = map.get(key);
System.out.println(key+"="+value);
}
2,先使用entrySet() 获取entry(键值对)对象,在使用entry.getKey() 和 entry.getValue() 获取键和值
🍧用多态 Set<Map.Entry>
Map map=new HashMap();
map.put("杨过","小龙女");
map.put("郭靖","黄蓉");
map.put("我","刘亦菲");
Set<Map.Entry> set = map.entrySet();
for (Map.Entry entry : set) {
Object key= entry.getKey();
Object value= entry.getValue();
System.out.println(key+"="+value);
}
:
🍧不用多态
Map map=new HashMap();
map.put("杨过","小龙女");
map.put("郭靖","黄蓉");
map.put("我","刘亦菲");
Set set = map.entrySet();
for (Object o : set) {
//强转成Entry
Map.Entry entry=(Map.Entry) o;
Object key= entry.getKey();
Object value= entry.getValue();
System.out.println(key+"="+value);
}
:
3,Lambda表达式遍历
Map map=new HashMap();
map.put("杨过","小龙女");
map.put("郭靖","黄蓉");
map.put("我","刘亦菲");
//lambda
map.forEach(( key, value)-> System.out.println(key+"="+value));
:
4, values直接获取值的集合(缺点没有key)
Map map=new HashMap();
map.put("杨过","小龙女");
map.put("郭靖","黄蓉");
map.put("我","刘亦菲");
Collection value = map.values();
for (Object obj : value){
System.out.println(obj);
}
OK,以上就是Map集合遍历的全部内容,博主会持续更新🍟🍟🍟