java之Map集合框架介绍
遍历Map:
一、通过键找值:
keySet()返回映射中包含的值
使用迭代器:
1.通过keySet获取对象,存储到某个集合
2.遍历集合:
- 导入Iterator接口
- 使用集合的iterator()方法返回Iterator对象
- while循环遍历
- 调用Iterator对象的hasNext()方法判断
- 调用Iterator对象的next()方法访问下一元素
3.next()方法访问的下一元素就是key
4.通过Map集合中的方法get(key)获取value
5.打印键和值
使用增强for循环:
//获取key
for(存储的数据类型 变量名:集合){
//获取value
通过Map集合中的方法get(key)获取value
}
增强for循环和keySet()方法综合使用:
//获取key
for(存储数据的类型 变量名:集合名.keySet()){
//获取value
通过Map集合中的方法get(key)获取value
}
二、找到对象,再找键和值
1.使用entrySet()把对象取出,存到某一集合
2.遍历集合,获取每个对象(迭代器):使用迭代器获取对象,使用对象中的getKey()方法和getValue()方法获取键和值
(注:获取的每个对象都包含两个值,即key、value,但它的类型是Map.Entry,所以可以遍历)
分享第一个源码,可以结合着看一下理解一下:
import java.util.HashMap;
import java.util.Map;
/**
*
* Map集合特点
* 1 双列 一个元素包含两个值
* 2 key value数据类型可以相同 也可以不同
* 3 key 不允许重复 value可以重复
* 4 key value 一一对应的关系
*
*/
public class Demo01Map {
public static void main(String[] args) {
show03();
}
private static void show03(){
HashMap<String,Integer> mm = new HashMap<>();
mm.put("张三",168);
mm.put("李四",168);
mm.put("王二",178);
boolean aa = mm.containsKey("bobo");
System.out.println(aa);
}
// 2 删数据 返回的数据 是被删除的值
// key不存在 返回 null
private static void show02(){
HashMap<String,Integer> mm = new HashMap<>();
mm.put("张三",168);
mm.put("李四",168);
mm.put("王二",168);
Integer ll = mm.remove("博博");
System.out.println(ll);
}
// 1 存数据
private static void show01(){
// c创建Map集合 多态
Map<String,String> mm = new HashMap<>();
mm.put("冷锋","龙小云");
mm.put("杨过","小龙女");
mm.put("李俊","博博");
System.out.println(mm);
}
}
分享第二个源码,可以结合着看一下理解一下:
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
/**
*
* 第一种遍历方式:通过键 找值
* Set KeySet 返回映射中包含的键
* 使用步骤
* 1 使用Map集合中 KeySet() 把Map---》key 取出来 ----》存储到一个Set集合中
* 2 遍历Set集合 ----》获得Map集合中的键
* 3 通过Map集合中的方法 get(key) 获得value
*/
public class Demo02KeySet {
public static void main(String[] args) {
// 1 创建集合
HashMap<String,Integer> mm = new HashMap<>();
mm.put("景甜",168);
mm.put("杨颖",168);
mm.put("林志玲",178);
// 2 使用Map集合中 KeySet() 把Map---》key 取出来 ----》存储到一个Set集合中
Set<String> s = mm.keySet();
//3 遍历Set集合
Iterator<String> it = s.iterator();
while(it.hasNext()){
String key = it.next();
//4 通过Map集合中的方法 get(key) 获得value
Integer value = mm.get(key);
System.out.println(key+"="+value);
}
System.out.println("*********************************************");
// 增强for循环遍历
for(String key:s){
Integer value = mm.get(key);
System.out.println(key+"="+value);
}
System.out.println("*********************************************");
for(String key:mm.keySet()){
//通过Map集合中的方法get(key) 找到value
Integer value = mm.get(key);
System.out.println(key+"="+value);
}
}
}
分享第三个源码,可以看一下。
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
/**
*
* Map 集合第二种遍历方式 使用Entry对象遍历
* entrySet(); 返回此映射中包含的映射关系
* 实现步骤
* 1 使用 entrySet() 把Entry对象取出来 存储到Set 集合
* 2 遍历Set集合 获取每一个Entry对象---》迭代器遍历Set
* 3 使用Entry对象中的方法 getKey(); getValue();
*/
public class Demo03EntrySet {
public static void main(String[] args) {
HashMap<String,Integer> mm = new HashMap<>();
mm.put("张三",168);
mm.put("李四",168);
mm.put("王二",178);
// 1 使用 entrySet() 把Entry对象取出来 存储到Set 集合
Set<Map.Entry<String, Integer>> set = mm.entrySet();
// 2 遍历Set集合 获取每一个Entry对象
// 使用迭代器遍历
Iterator<Map.Entry<String, Integer>> it = set.iterator();
while(it.hasNext()){
Map.Entry<String, Integer> entry = it.next();
// 3 使用Entry对象中的方法 getKey(); getValue();
String key = entry.getKey();
Integer value = entry.getValue();
System.out.println(key+":"+value);
}
}
}
我是爱学习的汪,有什么建议和见解欢迎跟我分享,我们一起进步。
浙公网安备 33010602011771号