Java 遍历取出Map集合key-value数据的4种方法

将map集合存数据与取出数据全部放在一个类MapTest中,方便阅读与查看

随便创建一个包,在包中新建一个class文件,(也可以不建包,直接新建一个class文件)

新建class文件MapTest.java,代码如下:

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

public class MapTest {
	public static void main(String[] args) {
		Map<Integer, String> map = new HashMap<>();
		//map集合存入数据
		map.put(1, "第一个value");
		map.put(2, "第二个value");
		map.put(3, "第三个value");

		//通过keySet取出map数据[for-each循环]
		System.out.println("-------[for-each循环遍历]通过keySet取出map数据-------");
		Set<Integer> keys = map.keySet();  //此行可省略,直接将map.keySet()写在for-each循环的条件中
		for(Integer key:keys){
			System.out.println("key值:"+key+" value值:"+map.get(key));
		}

		//通过EntrySet取出map数据[for-each循环]
		System.out.println("-------[for-each循环遍历]通过EntrySet取出map数据-------");
		Set<Entry<Integer, String>> entrys = map.entrySet(); //此行可省略,直接将map.entrySet()写在for-each循环的条件中
		for(Entry<Integer, String> entry:entrys){
			System.out.println("key值:"+entry.getKey()+" value值:"+entry.getValue());
		}

		//通过keySet取出map数据[Iterator遍历]
		System.out.println("-------[Iterator循环遍历]通过keySet取出map数据---------");
		Iterator<Integer> it = map.keySet().iterator(); //map.keySet()得到的是set集合,可以使用迭代器遍历
		while(it.hasNext()){
			Integer key = it.next();
			System.out.println("key值:"+key+" value值:"+map.get(key));
		}

		//通过EntrySet取出map数据[Iterator遍历]
		System.out.println("-------[Iterator循环遍历]通过EntrySet取出map数据---------");
		Iterator<Entry<Integer, String>> iterator = map.entrySet().iterator(); //map.entrySet()得到的是set集合,可以使用迭代器遍历
		while(iterator.hasNext()){
			Entry<Integer, String> entry = iterator.next();
			System.out.println("key值:"+entry.getKey()+" value值:"+entry.getValue());
		}
	}
}

控制台效果:

知识补充:

  • list和set集合都实现了Iterable接口,所以他们的实现类可以使用迭代器遍历,map集合未实现该接口,若要使用迭代器循环遍历,需要借助set集合
  • 推荐使用 EntrySet 遍历,效率更高。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 详解JAVA里面获取map的key和value的方法

    获取map的key和value的方法分为两种形式: map.keySet():先获取map的key,然后根据key获取对应的value: map..entrySet():同时查询map的key和value,只需要查询一次. 同时遍历key和value时,keySet与entrySet方法的性能差异取决于key的具体情况,如复杂度(复杂对象).离散度.冲突率等.换言之,取决于HashMap查找value的开销.entrySet一次性取出所有key和value的操作是有性能开销的,当这个损失小于Ha

  • java HashMap通过value反查key的代码示例

    复制代码 代码如下: import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Set;public class MapValueGetKey {  public static void main(String[] args) {    Map map = new HashMap<>();    map.put(1,&qu

  • Java Map 按key排序和按Value排序的实现方法

    一.理论准备 Map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等. TreeMap:基于红黑树(Red-Black tree)的 NavigableMap 实现,该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法. HashMap的值是没有顺序的,它是按照key的HashCode来实现的,对于这个无序的HashMap我们要怎么来实现排序呢?参照TreeM

  • Java实现过滤掉map集合中key或value为空的值示例

    本文实例讲述了Java实现过滤掉map集合中key或value为空的值.分享给大家供大家参考,具体如下: import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; /** * 过滤掉map集合中key或value为空的值 * @author lmb * @date 2017-3-14 */ public

  • Java Map 通过 key 或者 value 过滤的实例代码

    今天写根过滤的时候一下子有点愣眼,先是想到用 Java 原生的 map 循环查出来,但是觉得太 low, 后面思考了一下可以用 Java8 的 Lambda,写完了,又发现 Google Guava 有现成的方法,这里一一列出来,供参考使用. 首先提示,如果照搬我的代码的话别忘了引这些依赖 <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</arti

  • java8 stream 操作map根据key或者value排序的实现

    引言 最近小编自己一个人在负责一个项目的后台开发,其中有一部分是统计相关的功能,所以需要一些排序或者分组的操作,之前这种操作小编觉得还是比较麻烦的,虽热有一些现成的工具类,但是工具类的写法也是比较复杂的,但是如果使用java8 stream流的话就比较简单了,并且代码量会大大的减少,下面总结几个对map的操作. 1.map 根据value排序 Map<String,BigDecimal> map =new HashMap<>(); map.put("one",

  • Java 遍历取出Map集合key-value数据的4种方法

    将map集合存数据与取出数据全部放在一个类MapTest中,方便阅读与查看 随便创建一个包,在包中新建一个class文件,(也可以不建包,直接新建一个class文件) 新建class文件MapTest.java,代码如下: import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import java.util.Set; public class

  • java多线程编程之从线程返回数据的两种方法

    一.通过类变量和方法返回数据 使用这种方法返回数据需要在调用start方法后才能通过类变量或方法得到数据.让我们先来看看例程2-13会得到什么结果. 复制代码 代码如下: package mythread; public class MyThread extends Thread{    private String value1;    private String value2; public void run()    {        value1 = "通过成员变量返回数据"

  • java多线程编程之向线程传递数据的三种方法

    在传统的同步开发模式下,当我们调用一个函数时,通过这个函数的参数将数据传入,并通过这个函数的返回值来返回最终的计算结果.但在多线程的异步开发模式下,数据的传递和返回和同步开发模式有很大的区别.由于线程的运行和结束是不可预料的,因此,在传递和返回数据时就无法象函数一样通过函数参数和return语句来返回数据.本文就以上原因介绍了几种用于向线程传递数据的方法,在下一篇文章中将介绍从线程中返回数据的方法. 欲先取之,必先予之.一般在使用线程时都需要有一些初始化数据,然后线程利用这些数据进行加工处理,并

  • Java 深入浅出掌握Map集合之双列集合

    目录 前言 Map集合 Map概述 Map特点 Map集合的功能 Map集合的遍历 Map集合的各个子类 集合框架图 总结 前言 友友们,大家好哇!这一期我为大家带来双列集合(Map)的相关知识点讲解,那么什么是双列集合呢?Map集合就是采用了key-value键值对映射的方式进行存储.通俗的讲,和查字典类似,查字典时,我们通过偏旁或笔画等查询汉字,集合里通过key找到对应的value,用学生类来说,key相当于学号,value对应name. Map集合 Map概述 Map是一种依照键(key)

  • Java 详解Map集合之HashMap和TreeMap

    目录 HashMap 创建HashMap 添加元素 访问元素 删除元素 TreeMap 创建TreeMap 添加元素 访问元素 删除元素 HashMap.TreeMap区别 Map接口储存一组成对的键-值对象,提供key(键)到value(值)的映射,Map中的key不要求有序,不允许重复.value同样不要求有序,但可以重复.最常见的Map实现类是HashMap,他的储存方式是哈希表,优点是查询指定元素效率高. Map接口被HashMap和TreeMap两个类实现. HashMap HashM

  • Java集合类之Map集合的特点及使用详解

    目录 1.Map集合概述和使用 1.1 Map集合概述 1.2 Map集合常用方法 1.3 Map集合的遍历 1.Map集合概述和使用 1.1 Map集合概述 java.util接口 Map<K,V> 类型参数: K - 此映射所维护的键的类型 V - 映射值的类型 public interface Map<K,V> 将键映射到值的对象.一个映射不能包含重复的键:每个键最多只能映射到一个值. 此接口取代 Dictionary 类,后者完全是一个抽象类,而不是一个接口. Map 是一

  • Java for循环Map集合优化实现解析

    这篇文章主要介绍了Java for循环Map集合优化实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在<for循环实战性能优化>中提出了五种提升for循环性能的优化策略,这次我们在其中嵌套循环优化小循环驱动大循环的基础上,借助Map集合高效的查询性能来优化嵌套for循环. 如果小循环和大循环的集合元素数量分别为M和N,则双层For循环的循环次数是M*N,随着M和N的增长,对性能的影响越来越大.因此,本文考虑进一步优化,使得循环次数变为

  • 使用Java构造和解析Json数据的两种方法(详解二)

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON数据不须要任何特殊的 API 或工具包. 在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面接着介绍用org.json构造和解析Json数据的方法

  • 使用Java构造和解析Json数据的两种方法(详解一)

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON数据不须要任何特殊的 API 或工具包. 在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面首先介绍用json-lib构造和解析Json数据的方法

  • 遍历json获得数据的几种方法小结

    Json在Web开发的用处非常广泛,作为数据传递的载体,如何解析Json返回的数据是非常常用的.下面介绍下四种解析Json的方式: Part 1 var list1 = [1,3,4]; alert(list1[1]); var list2 = [{"name":"leamiko","xing":"lin"}]; alert(list2[0]["xing"]) alert(list2[0].xing) Pa

随机推荐