Java实现Map集合遍历的四种常见方式与用法分析

本文实例讲述了Java实现Map集合遍历的四种常见方式与用法。分享给大家供大家参考,具体如下:

~Map集合是键值对形式存储值的,所以遍历Map集合无非就是获取键和值,根据实际需求,进行获取键和值

1. 无非就是通过map.keySet()获取到值,然后根据键获取到值

for(String s:map.keySet()){
 System.out.println("key : "+s+" value : "+map.get(s));
}

2. 通过Map.Entry(String,String) 获取,然后使用entry.getKey()获取到键,通过entry.getValue()获取到值

for(Map.Entry<String, String> entry : map.entrySet()){
 System.out.println("键 key :"+entry.getKey()+" 值value :"+entry.getValue());
}

3. 其中通过Iterator也是为了最终获得entry,所以理解其用法,可以很好的使用和掌握

package com.bie;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
/**
* @author BieHongLi
* @version 创建时间:2017年2月25日 下午8:58:54
*
*/
public class MapTest01 {
 public static void main(String[] args) {
  Map<String, String> map=new HashMap<String, String>();
  map.put("张三1", "男");
  map.put("张三2", "男");
  map.put("张三3", "男");
  map.put("张三4", "男");
  map.put("张三5", "男");
  //第一种遍历map的方法,通过加强for循环map.keySet(),然后通过键key获取到value值
  for(String s:map.keySet()){
   System.out.println("key : "+s+" value : "+map.get(s));
  }
  System.out.println("====================================");
  //第二种只遍历键或者值,通过加强for循环
  for(String s1:map.keySet()){//遍历map的键
   System.out.println("键key :"+s1);
  }
  for(String s2:map.values()){//遍历map的值
   System.out.println("值value :"+s2);
  }
  System.out.println("====================================");
  //第三种方式Map.Entry<String, String>的加强for循环遍历输出键key和值value
  for(Map.Entry<String, String> entry : map.entrySet()){
   System.out.println("键 key :"+entry.getKey()+" 值value :"+entry.getValue());
  }
  System.out.println("====================================");
  //第四种Iterator遍历获取,然后获取到Map.Entry<String, String>,再得到getKey()和getValue()
  Iterator<Map.Entry<String, String>> it=map.entrySet().iterator();
  while(it.hasNext()){
   Map.Entry<String, String> entry=it.next();
   System.out.println("键key :"+entry.getKey()+" value :"+entry.getValue());
  }
  System.out.println("====================================");
 }
}

4. Map的一些常用的知识点,和取值的变形形式,都需要掌握和了解

package com.bie;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
/**
* @author BieHongLi
* @version 创建时间:2017年2月26日 上午11:29:59
*
*/
public class MapTest02 {
 public static void main(String[] args) {
  //1:key,value都是object类型的
  //2:key必须是唯一的,不唯一,那么后面的value会把前面的value覆盖
  //3:对于HashMap,key可以为空
  //4:value可以为空,也可以为空
  //5:HashTable的key和value不能为空
  //6:properties的key和value必须为String类型的
  Map<String , String> map=new HashMap<>();
  map.put("null", "this is null 1");
  map.put("null", "this is null 2");
  System.out.println(map.size());
  System.out.println(map.get(null));
  System.out.println("=============================");
  //循环显示map类型的key以及对应的value
  //三个集合,key的集合,value的集合,键值对的集合
  Set<String> keys=map.keySet();
  for(String s:keys){
   System.out.println(s);
  }
  System.out.println("=============================");
  Collection<String> values=map.values();//值的集合
  System.out.println(values);
  System.out.println("=============================");
  Set<Map.Entry<String, String>> entrys=map.entrySet();//键值对的集合
  for(Map.Entry<String, String> entry:entrys){
   System.out.println(entry.getKey()+" "+entry.getValue());
  }
 }
}

更多java相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。

(0)

相关推荐

  • Java使用Iterator迭代器遍历集合数据的方法小结

    本文实例讲述了Java使用Iterator迭代器遍历集合数据的方法.分享给大家供大家参考,具体如下: 1.使用迭代器遍历ArrayList集合 package com.jredu.oopch07; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class Ch05 { public static void main(String[] args) { // TODO Auto

  • Java编程Iterator迭代器设计原理及实现代码示例

    我们知道迭代器(Iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素.那么Iterator迭代器的设计原理是什么呢?迭代器问什么定义了一个借口,而不是一个类呢? 我们假设迭代器迭代数据的功能定义为了一个类,那么,会有这样的问题.不同的集合,由于数据结构不一样,所以他们的存储方式也是不一样的.也就是说,迭代器获取的时候,获取的方式是变化的,也就是不固定的.所以把这种方式定义为具体的实现是不合理的. 无论何种集合,他们肯定都有获取的功能,而且不知道什么时候就没有数据了.所有他

  • java 使用foreach遍历集合元素的实例

    java 使用foreach遍历集合元素的实例 1 代码示例 import java.util.*; public class ForeachTest { public static void main(String[] args) { // 创建集合.添加元素的代码与前一个程序相同 Collection books = new HashSet(); books.add(new String("book1")); books.add(new String("book2&quo

  • 详解Java中的迭代迭代器Iterator与枚举器Enumeration

    迭代器Iterator接口 1.迭代器接口 Iterable 内置方法iterator(), 返回一个新建的 Iterator. 如: public interface Iterable { Iterator Iterator(); } Iterator 有 hasNext() 和 next() 两个方法要实现. public interface Iterator { boolean hasNext(); Item next(); void remove(); //可选实现 } 2.实现 导入

  • java集合迭代器Iterator中的remove陷阱

    package TestList; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.TreeSet; public class TestIterator { /**      * @param args      */     public static void main(String[] args) {         // TODO Auto-gen

  • Java集合Set、List、Map的遍历方法

    本文实例讲述了Java集合Set.List.Map的遍历方法,分享给大家供大家参考. 具体方法如下: package com.shellway.javase; import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; import java.uti

  • Java中迭代器Iterator的使用解析

    什么是迭代器 在Java中,有很多的数据容器,对于这些的操作有很多的共性.Java采用了迭代器来为各种容器提供了公共的操作接口.这样使得对容器的遍历操作与其具体的底层实现相隔离,达到解耦的效果. 在Iterator接口中定义了三个方法: Java集合类中Map接口下的相关类并没有像Collection接口的相关类一样实现get()方法,因此在要实现遍历输出的场景中没法直接用get()方法来取得对象中的数据,但Java本身提供了另一种遍历数据的方法,即用Iterator迭代器,虽然Iterator

  • Java集合框架中迭代器Iterator解析

    Java里面的数组数据可以通过索引来获取,那么对象呢?也是通过索引吗?今天我们就来分析一下Java集合中获取集合对象的方法迭代-Iterator. 本篇文章主要分析一下Java集合框架中的迭代器部分,Iterator,该源码分析基于JDK1.8,分析工具,AndroidStudio,文章分析不足之处,还请指正! 一.简介 我们常常使用 JDK 提供的迭代接口进行 Java 集合的迭代. Iterator iterator = list.iterator(); while(iterator.has

  • java中List集合及其遍历详解

    1. 首先List<E>集合继承与Collection<E>,是一个接口. ①  Collection (集合框架是JDK1.2版本出现的) ②   list:是有序的,元素可以重复,以为该集合体系有索引.    经常用到的是实现该接口的ArrayList和LinkedList类 ③   Arraylist:  底层的数据结构使用的是数组结构, 特点: 查询速度很快,但是增删稍慢.线程不同步 LinkedList: 底层使用的是链表数据结构. 特点: 增删速度很快,查询稍慢. Ve

  • java中循环遍历删除List和Set集合中元素的方法(推荐)

    今天在做项目时,需要删除List和Set中的某些元素,当时使用边遍历,边删除的方法,却报了以下异常: ConcurrentModificationException 为了以后不忘记,使用烂笔头把它记录如下: 错误代码的写法,也就是报出上面异常的写法: Set<CheckWork> set = this.getUserDao().getAll(qf).get(0).getActionCheckWorks(); for(CheckWork checkWork : set){ if(checkWor

  • Java Iterator迭代器_动力节点Java学院整理

    迭代器是一种模式,它可以使得对于序列类型的数据结构的遍历行为与被遍历的对象分离,即我们无需关心该序列的底层结构是什么样子的.只要拿到这个对象,使用迭代器就可以遍历这个对象的内部. 1.Iterator Java提供一个专门的迭代器<<interface>>Iterator,我们可以对某个序列实现该interface,来提供标准的Java迭代器.Iterator接口实现后的功能是"使用"一个迭代器. 文档定义: Package java.util; publici

  • 详解Java中Iterator迭代器的用法

    迭代器(Iterator) 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构.迭代器通常被称为"轻量级"对象,因为创建它的代价小. Java中的Iterator功能比较简单,并且只能单向移动: (1) 使用方法iterator()要求容器返回一个Iterator.第一次调用Iterator的next()方法时,它返回序列的第一个元素.注意:iterator()方法是java.lang.Iterable接口,被Collection继承

随机推荐