首页 > 编程语言 >Java-如何取出集合Map中key和value的值

Java-如何取出集合Map中key和value的值

时间:2022-08-23 11:48:26浏览次数:75  
标签:Map Java 方式 iterator map entrySet value keySet 运行

修订记录 版本 是否发布
2016-01-25 v1.0

一、通过keySet的for循环方式获取Map中的key,value

	public static void keySetForGetKeyValue(Map<String, String> map) {
		long startTime = System.currentTimeMillis();
		for (String key : map.keySet()) {
			String v = map.get(key);
		}
		long endTime = System.currentTimeMillis();
		System.out.println("keySet的for循环方式运行时间:" + (endTime - startTime));
	}

100W数据执行平均耗时:173.1毫秒

keySet的for循环方式运行时间:272
keySet的for循环方式运行时间:141
keySet的for循环方式运行时间:246
keySet的for循环方式运行时间:187
keySet的for循环方式运行时间:153
keySet的for循环方式运行时间:210
keySet的for循环方式运行时间:162
keySet的for循环方式运行时间:103
keySet的for循环方式运行时间:112
keySet的for循环方式运行时间:145
平均运行时间:173.1

二、通过keySet的iterator迭代器方式获取Map中的key,value

	public static void keySetIteratorGetKeyValue(Map<String, String> map) {
		long startTime = System.currentTimeMillis();
		Iterator<String> iterator = map.keySet().iterator();
		while (iterator.hasNext()) {
			String key = iterator.next();
			String value = map.get(key);
		}
		long endTime = System.currentTimeMillis();
		System.out.println("keySet的iterator迭代器方式运行时间:" + (endTime - startTime));

100W数据执行平均耗时:146.1毫秒

keySet的iterator迭代器方式运行时间:280
keySet的iterator迭代器方式运行时间:133
keySet的iterator迭代器方式运行时间:188
keySet的iterator迭代器方式运行时间:157
keySet的iterator迭代器方式运行时间:149
keySet的iterator迭代器方式运行时间:79
keySet的iterator迭代器方式运行时间:88
keySet的iterator迭代器方式运行时间:114
keySet的iterator迭代器方式运行时间:142
keySet的iterator迭代器方式运行时间:131
平均运行时间:146.1

三、通过entrySet的for循环方式获取Map中的key,value(推荐)

public static void entrySetForGetKeyValue(Map<String, String> map) {
		long startTime = System.currentTimeMillis();
		for (Entry<String, String> entry : map.entrySet()) {
			String key = entry.getKey();
			String value = entry.getValue();
		}
		long endTime = System.currentTimeMillis();
		System.out.println("entrySet的for循环方式运行时间:" + (endTime - startTime));
	}

100W数据执行平均耗时:87.6毫秒

entrySet的for循环方式运行时间:153
entrySet的for循环方式运行时间:85
entrySet的for循环方式运行时间:113
entrySet的for循环方式运行时间:104
entrySet的for循环方式运行时间:123
entrySet的for循环方式运行时间:61
entrySet的for循环方式运行时间:88
entrySet的for循环方式运行时间:51
entrySet的for循环方式运行时间:57
entrySet的for循环方式运行时间:41
平均运行时间:87.6

四、通过entrySet的iterator迭代器方式获取Map中的key,value

public static void entrySetIteratorGetKeyValue(Map<String, String> map) {
		long startTime = System.currentTimeMillis();
		Iterator<Entry<String, String>> iterator = map.entrySet().iterator();
		while (iterator.hasNext()) {
			String key = iterator.next().getKey();
			String value = iterator.next().getValue();
		}
		long endTime = System.currentTimeMillis();
		System.out.println("通过entrySet的iterator迭代器方式运行时间:" + (endTime - startTime));
	}

100W数据执行平均耗时:95.4毫秒

通过entrySet的iterator迭代器方式运行时间:134
通过entrySet的iterator迭代器方式运行时间:76
通过entrySet的iterator迭代器方式运行时间:113
通过entrySet的iterator迭代器方式运行时间:156
通过entrySet的iterator迭代器方式运行时间:62
通过entrySet的iterator迭代器方式运行时间:70
通过entrySet的iterator迭代器方式运行时间:138
通过entrySet的iterator迭代器方式运行时间:71
通过entrySet的iterator迭代器方式运行时间:57
通过entrySet的iterator迭代器方式运行时间:77
平均运行时间:95.4

五、通过JDK1.8中map.forEach方式获取Map中的key,value(强烈推荐)

	public static void MapForEachGetKeyValue(Map<String, String> map) {
		long startTime = System.currentTimeMillis();
		map.forEach((k,v)->{

		});
		long endTime = System.currentTimeMillis();
		System.out.println("JDK1.8中map.forEach方式运行时间:" + (endTime - startTime));
	}

100W数据执行平均耗时:86.6毫秒

JDK1.8中map.forEach方式运行时间:346
JDK1.8中map.forEach方式运行时间:50
JDK1.8中map.forEach方式运行时间:80
JDK1.8中map.forEach方式运行时间:49
JDK1.8中map.forEach方式运行时间:50
JDK1.8中map.forEach方式运行时间:56
JDK1.8中map.forEach方式运行时间:50
JDK1.8中map.forEach方式运行时间:69
JDK1.8中map.forEach方式运行时间:81
JDK1.8中map.forEach方式运行时间:35
平均运行时间:86.6

标签:Map,Java,方式,iterator,map,entrySet,value,keySet,运行
From: https://www.cnblogs.com/BCX-1024/p/javaru-he-qu-chu-ji-hemap-zhongkey-hevalue-de-zhi.html

相关文章

  • java集合详解
    目录java集合详解1.java集合概述2.java集合与数组的区别3.java集合的特点4.java集合框架图5.java集合体系5.1迭代器Iterator5.2Collection接口5.2.1List子接口Arr......
  • 论文阅读笔记-MapLite 2.0: Online HD Map Inference Using a Prior SD Map
    MapLite2.0:OnlineHDMapInferenceUsingaPriorSDMapMapLite2.0:使用先前SD地图的在线高清地图推断Abstract部署全自动驾驶汽车一直是工业界和学术界深入研究的......
  • Java中枚举配合switch语句用法-2022新项目
    一、业务场景项目开发中经常会遇到多条件判断的情况,如果判断条件少的话使用if/elseif/else还比较好处理,如果判断条件多的话,则在使用这种语句就不太合适。如果是自定......
  • java中的注解和反射
    1什么是注解(1)定义:Annotation是从Jdk5.0开始后才引入的,不是程序本身,可以对程序作出解释。可以被其他程序读取(2)注解的使用:可以在package,class,method,field上面使用,......
  • Javascript日期、城市选择器(demo)
    1<htmlxmlns="http://www.w3.org/1999/xhtml">2<head>3<title>精美js日期选择器,js省市选择器-何问起</title>4<linktype="text/css"rel="Stylesheet"hre......
  • java线程的学习
    1什么是线程进程是程序执行的一次过程,它是一个动态的概念,是系统资源分配的单位,通常一个进程中可以包含若干个线程,线程就是独立执行的路径。线程的执行存在优先权问题......
  • oracle java 安装
    1.8版本之后只需要添加以下:1.配置JDK环境目录:变量名:JAVA_HOME  值:D:\java\jdk182.添加一个PATH变量变量名: PATH   值:%JAVA_HOME%\bin1.8版本之前除以上外,需......
  • Java多线程
    1.实现多线程1.1进程和线程【理解】进程:是正在运行的程序​ 是系统进行资源分配和调用的独立单位​ 每一个进程都有它自己的内存空间和系统资源线程:是进程中的单......
  • Java-网络编程
    1.网络编程入门1.1网络编程概述【理解】计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网......
  • JaVA-函数式接口&Stream流.
    1.函数式接口1.1函数式接口概述【理解】概念有且仅有一个抽象方法的接口如何检测一个接口是不是函数式接口@FunctionalInterface放在接口定义的上方:如果接口是函......