输出Map集合键值对的四种方式

发布时间 2023-11-24 18:58:59作者: 是小言

首先初始化一个Map集合并赋值:

//创建一个Map集合(接口),键指定为Integer类型,值指定为String类型
Map<Integer, String> list = new HashMap();
 
//在集合中新增三个键值对
list.put(1, "张三");
list.put(2, "李四");
list.put(3, "王五");

 

 

方法一(先获取所有键的集合,再根据键的集合获取所有值):

System.out.println("————————方法1————————");
Set set = list.keySet();  //获取所有的键并存储到集合(Set)中
for (Object info:set
     ) {
    System.out.println("健:" + info + "\t\t值:" + list.get(info));
}

控制台:

 

 

方法二(通过entrySet获取到键值对实体对象):

System.out.println("————————方法2————————");
Set entry = list.entrySet();  //获取所有键值对的对象并存储到集合(Set)中
for (Object info:entry
     ) {
    Map.Entry en = (Map.Entry)info;  //将Object类型强转为键值对对象类型
    System.out.println("键:" + en.getKey() + "\t\t值:" + en.getValue());
}

控制台:

 

 

方法三(通过values获取所有值,弊端:没有键):

System.out.println("————————方法3————————");
Collection values = list.values();  //获取所有的值并存储到集合(Collection)中
for (Object info:values
     ) {
    System.out.println(info);
}

控制台:

 

 

方法四(迭代器):

System.out.println("————————方法4————————");
Iterator iterator = list.entrySet().iterator();  //为list(Map集合)创建一个迭代器
while (iterator.hasNext()){  //判断是否有下一个元素,有则进入输出
    Map.Entry jzd = (Map.Entry) iterator.next();  //强转为实体对象
    System.out.println("键:" + jzd.getKey() + "\t\t值:" +  jzd.getValue());
}

控制台: