8种有效方式迭代Java Map中的每个条目

Twincat Scopeview录波中的Ringbuffer设置技巧与常见问题解决 本文深入解析了倍福Twincat Scopeview录波功能中Ringbuffer(环形缓冲区)的核心设置技巧与常见问题解决方案。针对数据丢失、触发时机不准等痛点,详细阐述了缓冲区大小、预触发样本、采样率等关键参数的优化配置,并提供了多通道同步、自动诊断等实战应用指南,帮助工程师高效捕捉和分析PLC数据。 阅读详情

8种有效方式

1 iterator + Map.Entry

long i = 0;
Iterator<Map.Entry<Integer, Integer>> it = map.entrySet().iterator();
while (it.hasNext()) {
    Map.Entry<Integer, Integer> pair = it.next();
    i += pair.getKey() + pair.getValue();
}
System.out.println(i);
复制代码

2 foreach + Map.Entry

long i = 0;
for (Map.Entry<Integer, Integer> pair : map.entrySet()) {
    i += pair.getKey() + pair.getValue();
}
System.out.println(i);
复制代码

3 foreach Java8

final long[] i = {0};
map.forEach((k, v) -> i[0] += k + v);
System.out.println(i[0]);
复制代码

4 keySet + foreach

long i = 0;
for (Integer key : map.keySet()) {
    i += key + map.get(key);
}
System.out.println(i);
复制代码

5 keySet + iterator

long i = 0;
Iterator<Integer> it = map.keySet().iterator();
while (it.hasNext()) {
    Integer key = it.next();
    i += key + map.get(key);
}
System.out.println(i);
复制代码

6 for + Map.Entry

long i = 0;
for (Iterator<Map.Entry<Integer, Integer>> entries = map.entrySet().iterator(); entries.hasNext(); ) {
    Map.Entry<Integer, Integer> entry = entries.next();
    i += entry.getKey() + entry.getValue();
}
System.out.println(i);
复制代码

7 Java8 Stream Api

System.out.println(map.entrySet().stream().mapToLong(e -> e.getKey() + e.getValue()).sum());
复制代码

8 Java8 Stream Api parallel

System.out.println(map.entrySet().parallelStream().mapToLong(e -> e.getKey() + e.getValue()).sum());
复制代码

效率对比

# 初始化Map
public final static Integer SIZE = 10000;

public Map<Integer, Integer> map = toMap();

public Map<Integer, Integer> toMap(){
    map = new HashMap<>(SIZE);
    for (int i = 0; i < SIZE; i++) {
        map.put(i, i);
    }
    return map;
}
复制代码

SIZE = 10000

SIZE = 1000000

SIZE = 10000000

总结

通过数据对比,我们得知:

1 方式6是耗时最长的,方式8在数量少的时候耗时较长,但是数量大的时候耗时最短,因为方式8是并发执行。

2 一个有趣的现象,Test执行顺序总是for -> while -> foreach/stream,作者也没搞清楚为什么。

制作3D地形图的方法-使用GlobalMapper和3ds Max软件 打开GlobalMapper软件,在菜单栏中选择“文件”>“打开数据文件”,然后选择相应的高程数据文件。在菜单栏中选择“渲染”>“渲染设置”,根据需要进行设置,如分辨率和输出格式。选择地形对象,点击菜单栏中的“渲染”>“材质编辑器”,然后根据需要调整材质属性,如颜色、纹理和光照等。在菜单栏中选择“工具”>“高程栅格和网格”>“创建地形网格”。在菜单栏中选择“文件”>“导出”>“导出栅格格式”。打开3ds Max软件,在菜单栏中选择“文件”>“导入”,然后选择之前导出的地形数据文件。步骤3:导出地形网格。 阅读详情

相关推荐

零基础微信理财通基金实操指南(2026版)

先活下来:保证不亏大钱,再想赚钱慢慢变富:年化10%,7年翻倍,这已经很好了开始比完美重要:今天先存100元到零钱通,就是最好的开始现在打开微信,进入理财通,完成第一步风险测评吧!有任何问题可以随时问,我会用最通俗的方式解释。

老韩的Linux云计算架构师进阶之路 1693

Java8 - Map更优雅的迭代方式:forEach

BiConsumer用于两个参数之间进行操作的函数式接口是 BiConsumer。这个函数式接口正好用来操作 Map 的 key 和 value。JDK8强化了针对 Map 类的迭代方式,新增了一个默认方法 forEach,它接收一个 BiConsumer 函数。...

Zebe 12万+

单细胞实战之亚细胞分群从T/NK至CD4+T细胞——从入门到进阶(中级篇1)

亚细胞分群从T/NK至CD4+T细胞

zfyyzhys的博客 6393

如何有效地迭代 Java Map 中的每个条目?

如果我有一个在 Java 中实现 Map 接口的对象,并且我希望遍历其中包含的每一对,那么遍历映射的最有效方法是什么?元素的顺序是否取决于我对接口的特定地图实现?

HuntsBot的博客 848

智能车竞赛独轮组信标灯系统全解析:从硬件选型到实战调试

本文全面解析了智能车竞赛独轮组信标灯系统的核心原理与实战应用。从硬件架构(灯板、灯罩、控制器)的深度剖析,到红外信号(特别是40kHz调制信号)的接收与解码策略,再到车模的灭灯机构设计与路径规划,提供了从硬件选型到软件调试的全链路指南。文章重点分享了实战调试技巧与常见问题排查方法,旨在帮助参赛队伍深入理解系统,提升车模的识别精度与比赛表现。

e4f5g6h的博客 1124

SAP 人力资源工资配置项3---工资项配置

工资项设置

xiouluoyang的专栏 1万+

JAVA8学习(一)List、Map的循环迭代

学习怎样用java8去循环迭代 1、Map Map items = new HashMap<>(); items.put(1, "wangwu"); items.put(2, "zhangsan"); items.put(3, "lisi"); items.put(4, maliu); items.forEach((k,v)->System.out.println("Item : " + k

飞飞好奇的专栏 5581

一文读懂「Chain of Thought,CoT」思维链

Chain-of-Thought(CoT)是一种改进的Prompt技术,目的在于提升大模型LLMs在复杂推理任务上的表现,对于复杂问题尤其是复杂的数学题大模型很难直接给出正确答案。如算术推理(arithmetic reasoning)、常识推理(commonsense reasoning)、符号推理(symbolic reasoning)。COT通过要求模型在输出最终答案之前,显式输出中间逐步的推理步骤这一方法来增强大模型的算数、常识和推理能力。简单,但有效。2022 年,在 Google 发布的论文。

女王の专属领地 4万+

Java 集合总结(8)Map的迭代方法

迭代: keySet() 缺点:keySet方法只返回了所有键,没有值 values() 使用values方法进行遍历 缺点:keySet方法只返回了所有值,没有键 entrySet() 首先创建Map实现类,并相应的添加元素 Map<String, String> map = new HashMap<String, String>(); ...

明月映雪的博客 468

拿下华为性格测试!

华为性格测试指南

weixin_41171614的博客 5287

瑞数jsvmp算法还原流程讲解

​ 又是很久没写文章了,今天水一篇文章吧,鉴于之前有看到过别人的文章被警告的案例,所以这篇文章就仅写一下还原瑞数vmp的大概流程吧(仅记录下自己还原的思路)

博客 6608

[基础篇]-java8之Map遍历5种方式

准备测试数据 private static Map<String, Object> map = new HashMap<>(); static { map.put("1001", "value1"); map.put("1002", "value2"); map.put("1003", "value3"); map.put("1004", 1004); map.put("1005", 1005); } 1.通过Map.entrySet遍历

程序员小强的博客 1万+

24、无人机能耗模型与上下文质量管理的研究

本文系统介绍了无人机能耗模型与上下文质量管理的研究进展。详细阐述了Dorling、Stolaroff、Kirchstein和Tseng等经典能耗模型的原理及特点,并基于LSTM架构构建了数据驱动的能耗预测模型,实验表明其预测精度显著优于传统模型。此外,还探讨了物联网环境中的上下文质量管理问题,引入了conQeng框架,以提升上下文选择、测量和验证的效率与可靠性。研究为无人机能耗优化和物联网上下文管理提供了理论支持和技术方案。

palm99的专栏 345

java map get i_如何有效地迭代Java Map中的每个条目?

为了总结其他答案并将它们与我所知道的结合起来,我找到了10种主要方法(见下文)。另外,我写了一些性能测试(见下面的结果)。例如,如果我们想要找到地图的所有键和值的总和,我们可以写:使用iterator和Map.Entrylongi=0;Iterator>it=map.entrySet().iterator();while(it.hasNext()){Map.Entrypai...

weixin_42317730的博客 209

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

jdk8中map新的迭代方式:forEach

jdk8中map新的迭代方式:forEach 介绍:最近在项目中碰到需要遍历map,获取key,value。然后发现jdk8中出现了一种新的遍历方式:map.forEach。 示例: Map<String, Object> map = new HashMap<>(16); map.put("username", "张三"); map.put("password", "123...

zhaoyong_的博客 838

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Java8中的forEach使用

文章目录forEach1. forEach method2. Java 8 stream forEach example3. Java forEach examle using List4. Java forEach example using Map5. Create custom action(自定义操作) forEach Java中的forEach是一个用于迭代集合或流,且可以对迭代的每个元...

FEEL的博客 2万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

【Java 8 新特性】Java Map replaceAll() 示例 | 根据函数替换Map中所有条目的值

Java Map replaceAll 示例 | 根据函数替换Map中所有条目的值参考文献 replaceAll是java.util.Map的默认方法,在Java 8中被引入。 replaceAll方法接受BiFunction作为一个参数。 replaceAll方法将每个条目的值替换为对该条目调用指定函数的结果。 replaceAll方法对Map的每个条目都起作用,如果指定的函数对任何条目都产生异常,则该方法停止。 从Java文档中找到该方法的声明。 default void replaceAll(BiFu

猫巳的博客 4331

java中map的循环方式

Map是Java中的一个接口,它用于存储键-值对,并且键和值都可以是任意对象。它是Java集合框架中的一部分,并提供了一些方法来操作和访问Map中的元素。Map中的每个键都是唯一的,这意味着不能使用相同的键插入新的键值对,而新的值将会覆盖旧的值。Map提供了许多方法来检查是否包含指定的键和值、获取键值对数量和遍历Map中的元素等。

nishixiaoyu的博客 1215

Java map集合循环遍历的方式

1.通过Map.keySet()遍历key和value Map<String, Object> map = new HashMap<String, Object>(); map.put("key1", 111); map.put("key2", 222); map.put("key3", 333); map.put("key4", 444); for(String key:map.keySet()){ String value = map.get(key).toStr

weixin_49456013的博客 2841

【Java基础-44.8】Java中Map集合的遍历方式详解

在Java中,Map集合的遍历方式有多种,每种方式都有其适用的场景和优缺点。在实际开发中,我们可以根据具体需求选择合适的遍历方式。对于大多数情况,推荐使用entrySet()或forEach()方法,因为它们性能较好且代码简洁。如果需要删除元素,则可以使用迭代器进行遍历。

weixin_39033358的博客 1353

Map中的forEach方法

转载请标明出处^_^ 原文首发于:www.zhangruibin.com 本文出自于:RebornChang的博客 HashMap HashMap 继承于AbstractMap,实现了Map、Cloneable、java.io.Serializable接口。 AbstractMap实现了Map接口。 Map接口里面有一个forEach方法,@since 1.8。 default void ...

Reborn_Chang的博客 7万+

map foreach java8_Java8 - Map更优雅的迭代方式:forEach

BiConsumer用于两个参数之间进行操作的函数式接口是BiConsumer。这个函数式接口正好用来操作Map的key和value。JDK8强化了针对Map类的迭代方式,新增了一个默认方法forEach,它接收一个BiConsumer函数。JDK给出的描述如下:Performs the given action for each entry in this map until...

weixin_29254029的博客 515

java hashmap 获取第一个元素_java - 如何从hashmap中获取一个条目而不进行迭代

java - 如何从hashmap中获取一个条目而不进行迭代如果密钥未知,是否有一种从HashMap中只获得一个Entry的优雅方式,无需迭代。由于进入的顺序并不重要,我们可以说类似的东西hashMapObject.get(zeroth_index);虽然我知道没有这样的get by index方法。如果我尝试下面提到的方法,它仍然必须得到hashmap的所有条目集。for(Map.Entry ...

weixin_34723479的博客 1598
上一篇: 4个实验,彻底搞懂TCP连接的断开
下一篇: G1源码之fullGC算法详解
JavaMonsterr
博客等级 码龄4年 211粉丝 481原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值