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);
}

}
}

 

                                                              我是爱学习的汪,有什么建议和见解欢迎跟我分享,我们一起进步。

posted on 2019-05-18 17:51  汪汪爱学习  阅读(94)  评论(0)    收藏  举报

导航