HashMap的七种遍历方式

HashMap我整理了七种遍历方式:

  1. Iterator entrySet

  2. Iterator keySet

  3. ForEach entrySet

  4. ForEach keySet

  5. lambda

  6. stream entrySet

  7. stream 多线程 entrySet

下面看代码:

    public static void main(String[] args) {HashMap<String, String> map = new HashMap<>();map.put("1", "孙悟空");map.put("2", "布尔玛");map.put("3", "雅木茶");map.put("4", "普亚路");map.put("5", "乌龙");// 1、Iterator entrySetIterator<Map.Entry<String, String>> iterator = map.entrySet().iterator();while (iterator.hasNext()) {Map.Entry<String, String> next = iterator.next();System.out.println(next.getKey());System.out.println(next.getValue());}// 2、Iterator keySetIterator<String> keySetIterator = map.keySet().iterator();while (keySetIterator.hasNext()) {String key = keySetIterator.next();System.out.println(key);System.out.println(map.get(key));}// ForEach entrySetfor (Map.Entry<String, String> stringStringEntry : map.entrySet()) {System.out.println(stringStringEntry.getKey());System.out.println(stringStringEntry.getValue());}// ForEach keySetfor (String key : map.keySet()) {System.out.println(key);System.out.println(map.get(key));}// lambdamap.forEach((key,value)->{System.out.println(key);System.out.println(value);});// stream entrySetmap.entrySet().stream().forEach(entry->{System.out.println(entry.getKey());System.out.println(entry.getValue());});// stream 多线程 entrySetmap.entrySet().parallelStream().forEach(entry->{System.out.println(entry.getKey());System.out.println(entry.getValue());});}

效率:

实际应用能用entrySet就用entrySet,该效率比keySet快了一倍。

至于为什么entrySet比keySet效率块,是因为遍历的时候,entry已经获取到了key和value,直接用即可,而keySet 获取到key之后又要通过map.get(key) 遍历一遍,因此效率没有entrySet快。

存在阻塞时 parallelStream 性能最高, 非阻塞时 parallelStream 性能最低 。该方法尽量在数据量巨大的时候才考虑用,不然区别不大。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/749572.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Stable Diffusion 阿里云搭建FC实现文生图模型

AI的创造力真的很奇妙。 提示词&#xff1a;杰作&#xff0c;最佳品质&#xff0c;非常详细&#xff0c;七龙珠&#xff0c;孙悟空&#xff0c;西游记&#xff0c;仙境&#xff0c;动态角度&#xff0c;火焰山&#xff0c;小岛&#xff0c;站立&#xff0c;携带魔兽&#xff0…

主干网络篇 | YOLOv8更换主干网络之ShuffleNetV2(包括完整代码+添加步骤+网络结构图)

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。ShuffleNetV2是一种轻量级的神经网络架构&#xff0c;用于图像分类和目标检测任务。它是ShuffleNet的改进版本&#xff0c;旨在提高模型的性能和效率。ShuffleNetV2相比于之前的版本&#xff0c;在保持模型轻量化的同时&am…

预备知识:深入理解接口测试!

实验简介 随着移动互联网甚至物联网的触角深入到人们生活的每个场景&#xff0c;每个角落&#xff0c;伴随而来的便是企业对其软件系统接口定义和研发&#xff0c;以便于进行数据传输和交换。由此导致目前企业急需大量专职接口测试工程师&#xff0c;因为接口测试天然具备自动…

c++算法学习笔记 (8) 树与图部分

1.树与图的存储 &#xff08;1&#xff09;邻接矩阵 &#xff08;2&#xff09;邻接表 // 链式前向星模板&#xff08;数组模拟&#xff09; #include <iostream> #include <cstring> #include <algorithm> using namespace std; const int N 100010, M …

安全性测试报告

我们出具报告&#xff0c;报告上是要体现安全性测评依据标准文件的。 这次出具的报告是按照GB 25000.51-2016标准&#xff0c;根据Q/GDW 1597-2015的测评项进行开展测评&#xff0c;根据10942-2018的具体测评方法进行编写报告 在标准文件中&#xff0c;有“安全漏洞” &#x…

【RS422】基于未来科技FT4232HL芯片的多波特率串口通信收发实现

功能简介 串行通信接口常常用于在计算机和低速外部设备之间传输数据。串口通信存在多种标准&#xff0c;以RS422为例&#xff0c;它将数据分成多个位&#xff0c;采用异步通信方式进行传输。   本文基于Xilinx VCU128 FPGA开发板&#xff0c;对RS422串口通信进行学习。   根…

家具工厂5G智能制造数字孪生可视化平台,推进家具行业数字化转型

家具制造5G智能制造工厂数字孪生可视化平台&#xff0c;推进家具行业数字化转型。随着科技的飞速发展&#xff0c;家具制造业正迎来一场前所未有的数字化转型。在这场家具制造业转型中&#xff0c;5G智能制造工厂数字孪生可视化平台发挥着至关重要的作用。 5G智能制造工厂数字孪…

MySQL语法分类 DQL(3)排序查询

为了更好的学习这里给出基本表数据用于查询操作 create table student (id int, name varchar(20), age int, sex varchar(5),address varchar(100),math int,english int );insert into student (id,name,age,sex,address,math,english) values (1,马云,55,男,杭州,66,78),…

MATLAB中的数据类型

MATLAB是一种高级编程语言和交互式环境&#xff0c;用于算法开发、数据可视化、数据分析和数值计算。在MATLAB中&#xff0c;数据类型是用于分类和定义存储在变量中数据种类的基本概念。选择适当的数据类型对于确保程序的正确性、有效性和内存效率至关重要。下面将详细解释MATL…

python企业编码管理的程序(附源码)

企业编码管理Python程序包介绍 在当今数字化时代&#xff0c;企业编码管理成为企业信息化建设中不可或缺的一环。有效的编码管理不仅有助于企业规范业务流程&#xff0c;提高数据处理效率&#xff0c;还能降低运营成本&#xff0c;增强市场竞争力。为此&#xff0c;我们推出了…

华为数通方向HCIP-DataCom H12-821题库(多选题:161-180)

第161题 以下关于IPv6优势的描述,正确的是哪些项? A、底层自身携带安全特性 B、加入了对自动配置地址的支持,能够无状态自动配置地址 C、路由表相比IPv4会更大,寻址更加精确 D、头部格式灵活,具有多个扩展头 【参考答案】ABD 【答案解析】 第162题 在OSPF视图下使用Filt…

降维算法之t-SNE (t-Distributed Stochastic Neighbor Embedding)

注意&#xff1a;本文引用自专业人工智能社区Venus AI 更多AI知识请参考原站 &#xff08;[www.aideeplearning.cn]&#xff09; t-SNE是一种用于探索高维数据结构的非线性降维技术。它特别适用于高维数据的可视化&#xff0c;因为它能够在低维空间中保留原始高维数据的局部结…

[WUSTCTF2020]朴实无华

查看robots.txt 找到/fAke_flagggg.php 显然这是个假的flag&#xff0c;但是我们在header处发现了fl4g.php 近来发现中文全部变成了乱码 插件转成utf8后正常显示 <?php header(Content-type:text/html;charsetutf-8); error_reporting(0); highlight_file(__file__);//leve…

c# 前后台协同

目的&#xff0c;前台显示页面&#xff0c;后台加载所需数据集到前台。 1、声明数据库中对应表的实体类,创建的实体类和数据表同名&#xff0c;方便维护 public class sjbtable { //字段的get set public long ID { get; set; } public string NAME { get; set; } }…

epoll合集

一、epoll_event epoll_event 结构体用于在 Linux 中管理异步 I/O 事件。让我们来详细了解一下&#xff1a; 定义&#xff1a; epoll_event 结构体指定了内核在相应的文件描述符就绪时应保存并返回的数据。它的定义如下&#xff1a; #include <sys/epoll.h> struct e…

C# 方法

文章目录 1.方法的定义与调用2.方法的参数3.方法参数的赋值4.引用传参5.方法的返回值6.out输出参数7.参数列表8.作用域上期练习题答案本期练习题 1.方法的定义与调用 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Th…

Linux 系统调用函数fork、vfork、clone详解

文章目录 1 fork1.1 基本介绍1.2 fork实例1.2.1多个fork返回值1.2.2 C语言 fork与输出1.2.3 fork &#x1f4a3; 2 vfork2.1 基本介绍2.2 验证vfork共享内存 3 clone3.1 基本介绍3.2 clone使用 1 fork 1.1 基本介绍 #include <sys/types.h> #include <unistd.h>p…

Unity 3D中使用泛型

目录 泛型所提供的好处有以下3点C#提供的泛型机制主要可以分为以下两种形式Mono运行时对泛型机制的优化泛型委托泛型委托中的泛型类型参数可以是以下3种中的其中一种&#xff1a;什么是泛型约束泛型约束一共有6种&#xff1a;泛型中的类型约束的几种形式类型约束的组合合法的约…

PS学习-抠图-蒙版-冰块酒杯等透明物体

选中图&#xff0c;ctrlA 全选 ctrlC复制 创建一个蒙版图层 选中蒙版Alt 点击进入 ctrlv 复制 ctrli 反转 原图层 ctrldelete填充为白色 添加一个背景&#xff0c;这个方法通用 首选创建一个 拖到最底部 给它填充颜色 这个可能是我图片的原因。视频是这样做的

五子棋小游戏(sut实验报告)

实验目的 实现人与人或人与电脑进行五子棋对弈 实验内容 启动游戏&#xff0c;显示游戏参数设置界面&#xff0c;用户输入参数后进入游戏界面&#xff0c;显示棋盘及双方博弈过程&#xff0c;游戏过程中可选择退出游戏。判定一方获胜后结束本局游戏&#xff0c;可选择继续下…