「javamap便利」javamap使用

博主:adminadmin 2023-01-05 23:09:08 915

今天给各位分享javamap便利的知识,其中也会对javamap使用进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

如何高效的遍历Map?你常用的不一定是最快的

如文章标题所言,遍历Map是开发过程中比较常见的行为,实现的方式也有多种方式,本文带领大家一起看看更加高效的遍历 Map 。

首先一起来看看,有哪些遍历 Map 的方式

这种应该算是比较常见的使用方式,也是比较容易理解的

keySet : 获取 map 中所有的 key ,然后依次遍历每个 key 。

这种是我平时开发中用的最多的方式,简单通俗易懂。

但是其性能如何呢?后续待揭秘。

不知道有多少人用过 Java8 中的 parallel模式,本质是一种并行处理方式。

性能如何?稍后揭晓。

不行就找找外援试试?

测试环境如下:Intel i7-4790 3.60 GHz, 16 GB

测试集为小的Map集合(大约100个元素),各个方法耗时如下:

从结果看出,在数据量比较小时, 利用 Java 8中的foreach 暂时领先。

测试集为元素数据量 1000 的 Map 集合,测试结果如下:

从结果集合看,在中等数据量情况下,外援 Eclipse (CS) collections 中的 MutableMap 表现最为优异,勇得第一。

其次为 Java 8 中的 foreach ,位列第二。

测试集为元素数据量 100000 (十万级别) 的 Map 集合,测试结果如下:

利用 iterator 和 Map.Entry 【方法1】稳居第一,领先 第二名差不多7s。

第二名为 Eclipse (CS) collections 中的 MutableMap 位列第二,在大数据量下表现表现比较出色。

指的注意的是之前在小数据量下表现比较出色的 Java 8 中的 foreach ,排名却比较靠后,但是仍然超过了利用 Java8 的 Stream API 。

其中还有另一个现象:利用并行模式计算的 Java8 中的 Stream API parallel ,在大数据量时表现好于 foreach 和 stream api 。

下表为不同数据量情况下的各个方法性能表现

在平时开发中,数据量都不算太大时,剖除外援而言, Java 8 中的 foreach 【方法3】,表现比较优异。而并行运算的 Stream API parallel 【方法8】表现没有想象中好, Stream API 【方法7】表现中规中矩。

主要罗列了多种遍历 Map 的方式,每个实现方式都有各自的特点,有的人喜欢 foreach 的通俗易懂;有的人喜欢 stream 的干净利落。

如果从性能来看,小数据量情况下:优先推荐使用 Java8 Foreach 【方法3】。

大数据量情况下推荐 使用 iterator 和 Map.Entry 【方法1】。

我是大黄,一个只会写 HelloWorld 的程序员,下期见。

java遍历map几种简单方法

代码如下:

import java.util.HashMap;

import java.util.Map;

public class App {

public static void main(String[] args) {

MapString, Object map = new HashMap();

map.put("Name", "Barry");

map.put("Gender", "Male");

map.put("Age", 25);

// 第一种遍历方式

for (Map.EntryString, Object entry : map.entrySet()) {

System.out.println(entry.getKey() + " = " + entry.getValue());

}

// 第二种遍历方式

map.forEach((key, value) - {

System.out.println(key + " = " + value);

});

// 通过遍历 key,然后再获取 value

for (String key : map.keySet()) {

System.out.println(key + " = " + map.get(key));

}

// 单独遍历 values

for (Object value : map.values()) {

System.out.println(value);

}

}

}

JAVA循环遍历Map的几种方法

第一种用for循环

Java代码

for(Map.EntryString, String entry:map.entrySet()){

System.out.println(entry.getKey()+"---"+entry.getValue());

}

第二种用迭代

Java代码

Set set = map.entrySet();

Iterator i = set.iterator();

while(i.hasNext()){

Map.EntryString, String entry1=(Map.EntryString, String)i.next();

System.out.println(entry1.getKey()+"=="+entry1.getValue());

}

用keySet()迭代

Java代码

Iterator it=map.keySet().iterator();

while(it.hasNext()){

String key;

String value;

key=it.next().toString();

value=map.get(key);

System.out.println(key+"--"+value);

}

用entrySet()迭代

Java代码

Iterator it=map.entrySet().iterator();

System.out.println( map.entrySet().size());

String key;

String value;

while(it.hasNext()){

Map.Entry entry = (Map.Entry)it.next();

key=entry.getKey().toString();

value=entry.getValue().toString();

System.out.println(key+"===="+value);

}

java Map 怎么遍历

Object val = entry.getValue();}效率高,以后一定要使用此种方式!第二种:Map map = new HashMap(); Iterator iter = map.keySet().iterator(); while (iter.hasNext()) { Object key = iter.next(); Object val = map.get(key);}效率低,以后尽量少使用! HashMap的遍历有两种常用的方法,那就是使用keyset及entryset来进行遍历,但两者的遍历速度是有差别的,下面请看实例: public class HashMapTest { public static void main(String[] args) ...{ HashMap hashmap = new HashMap(); for (int i = 0; i 1000; i ) ...{ hashmap.put("" i, "thanks");}long bs = Calendar.getInstance().getTimeInMillis(); Iterator iterator = hashmap.keySet().iterator(); while (iterator.hasNext()) ...{ System.out.print(hashmap.get(iterator.next()));}System.out.println(); System.out.println(Calendar.getInstance().getTimeInMillis() - bs); listHashMap();}public static void listHashMap() ...{ java.util.HashMap hashmap = new java.util.HashMap(); for (int i = 0; i 1000; i ) ...{ hashmap.put("" i, "thanks");}long bs = Calendar.getInstance().getTimeInMillis(); java.util.Iterator it = hashmap.entrySet().iterator(); while (it.hasNext()) ...{ java.util.Map.Entry entry = (java.util.Map.Entry) it.next(); // entry.getKey() 返回与此项对应的键 // entry.getValue() 返回与此项对应的值 System.out.println(Calendar.getInstance().getTimeInMillis() - bs);}}对于keySet其实是遍历了2次,一次是转为iterator,一次就从hashmap中取出key所对于的value。

javamap便利的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于javamap使用、javamap便利的信息别忘了在本站进行查找喔。