Java之hashMap遍历方式
在java开发中,hashMap是非常重要的容器类,存储的是键值对(key,value)。
HashMap继承AbstractMap,实现了Map、Cloneable、Serializable接口,非线程安全类,但是效率高。HashMap允许null健和null值,允许value重复,但不允许key重复。HashMap有两个参数影响其性能,初始容量和加载因子,当哈希表中的条目数超出加载因子与当前容量的乘积时,要对哈希表进行refresh操作,重建内部数据结构,容量扩大为之前的两倍,加载因子默认值为0.75。
HashMap的遍历方式
第一种,遍历HashMap的entrySet键值对集合,通过HashMap.entrySet()得到键值对集合,通过迭代器Iterator遍历集合得到key和value。
public static void main(String[] args) {Map<Object, Object> map = new HashMap<>();map.put("caocao","11");map.put("liubei","22");map.put("sunquan","33");first(map);}private static void first(Map<Object, Object> map) {Iterator<Map.Entry<Object, Object>> iterator = map.entrySet().iterator();while (iterator.hasNext()) {Map.Entry<Object, Object> entry = iterator.next();System.out.println("key:" + entry.getKey() + ",vaule:" + entry.getValue());}}
第二种,遍历HashMap的keySet集合,通过HashMap.keySet()得到key集合,通过迭代器Iterator遍历集合得到key和value。
private static void second(Map<Object, Object> map) {Iterator<Object> iterator = map.keySet().iterator();while (iterator.hasNext()) {Object key = iterator.next();System.out.println("key:" + key + ",vaule:" + map.get(key));}}
第三种,遍历HashMap的values集合,通过HashMap.valus()得到value集合,通过迭代器Iterator遍历集合得到key和value。
private static void third(Map<Object, Object> map) {Iterator<Object> iterator = map.values().iterator();while (iterator.hasNext()) {Object value = iterator.next();System.out.println("vaule:" + value);}}
第四种,遍历HashMap的entrySet键值对集合,通过HashMap.entrySet()得到键值对集合,通过for循环遍历集合得到key和value。
private static void fourth(Map<Object, Object> map) {for (Map.Entry<Object,Object> entry: map.entrySet()) {System.out.println("key:" + entry.getKey() + ",vaule:" + entry.getValue());}}
第五种,遍历HashMap的keySet集合,通过HashMap.keySet()得到key集合,通过for循环遍历集合得到key和value。
private static void fifth(Map<Object, Object> map) {for(Object key : map.keySet()) {System.out.println("key:" + key + ",vaule:" + map.get(key));}}
第六种,遍历HashMap的values集合,通过HashMap.valus()得到value集合,通过for循环遍历集合得到key和value。
private static void sixth(Map<Object, Object> map) {for (Object value : map.values()) {System.out.println("vaule:" + value);}}
第七种,通过Lambda遍历HashMap得到key和value
private static void seventh(Map<Object, Object> map) {map.forEach((key,value) -> {System.out.println("key:" + key + ",vaule:" + value);});}
第八种,通过Lambda遍历HashMap.entrySet()得到键值对集合得到key和value
private static void eighth(Map<Object, Object> map) {map.entrySet().forEach(item -> {System.out.println("key:" + item.getKey() + ",vaule:" + item.getValue());});}
第九种,通过Lambda遍历HashMap.keySet()得到key集合得到key和value
private static void ninth(Map<Object, Object> map) {map.keySet().forEach(item -> {System.out.println("key:" + item + ",vaule:" + map.get(item));});}
以上遍历主要Iterator遍历集合方式、for循环遍历集合方式,Lambda遍历集合方式,根据具体需求选用不同的方式,通过Iterator方式循环删除数据是安全的,for方式循环删除数据非安全,Lambda方式循环删除数据非安全,通过Iterator方式的效率也很高。
Java之hashMap遍历方式相关推荐
- Java 基础——HashMap 遍历方式
目录 1.使用迭代器 (Iterator) EntrySet 的方式进行遍历 2.使用迭代器 (Iterator) KeySet 的方式进行遍历 3.使用 foreach EntrySet 的方式进行 ...
- Java中HashMap遍历的两种方式
第一种: Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) { Ma ...
- Java HashMap 遍历方式性能探讨
转载自 Java HashMap 遍历方式性能探讨 关于HashMap的实现这里就不展开了,具体可以参考JDK7与JDK8中HashMap的实现 JDK8之前,可以使用keySet或者entrySet ...
- java中hashmap遍历
java中hashmap遍历有两种方法,第一种就是将所有的key放到set中,然后通过遍历set通过key来获取value,可以选择使用迭代器遍历也可以使用增强for来遍历,第二种可以使用entrys ...
- java中hashmap遍历的几种方法
Map集合的遍历方式一:键找值 先获取Map集合的全部键的Set集合. 遍历键的Set集合,然后通过键提取对应值. public class HashMap {public static void m ...
- Java中集合遍历方式(List、Set、Queue、Deque、Stack、Map)
什么是集合?通俗的讲,集合就是存储一组数据的容器,那么,相比较于同样是存储数据的数组,集合的优势就体现在集合的长度是可变的,而数组的长度是固定的.在我们常见的集合中,主要有两大类: Collectio ...
- java几种遍历方式以及效率对比
几种遍历方式: /*** */ package effectiveUse;import java.util.Iterator; import java.util.List;/*** @author w ...
- java中hashMap遍历,JSONObject遍历
1.hashmap 遍历 第一种使用迭代器 Map map = new HashMap(); Iterator iter = map.keySet().iterator(); while (iter. ...
- java遍历hashmapk v_Java HashMap 遍历方式探讨
JDK8之前,可以使用keySet或者entrySet来遍历HashMap,JDK8中引入了map.foreach来进行遍历. keySet其实是遍历了2次,一次是转为Iterator对象,另一次是从 ...
最新文章
- 区块链简史:解读这场技术革命的前世今生
- 美国科学院2020新晋院士名单发布!中科院曹晓风及6位华人学者入选,去年还有高福和颜宁...
- 英伟达再发边缘AI计算设备:仅信用卡大小,性能比TX2强15倍
- SPDK,软件定义存储的催化剂
- SpaceEmacs Rock Day5 学习笔记
- go linux 源码编译环境,修改并编译golang源码
- CSS 框模型( Box module )
- angular input_更快的Angular应用程序
- Tomcat优化实践——网站运维
- Web前后端缓存技术(缓存的主要作用是什么)
- Google验证码生成
- dwg android软件,CAD迷你看图软件手机版
- google翻译自动检测语言翻译成中文
- 日记1-时间序列协整进步
- 无源滤波器和有源滤波器有什么区别?-道合顺大数据infinigo
- 配置Firefox火狐浏览器burpsuite https抓包
- 华为交换机端口vlan详解
- 行测-图形推理-2-黑白格类
- 实现阿里云视频直播流程
- 二代征信报告解读及信贷风控中的应用
热门文章
- layui 导出 excel 表格
- jeecg-boot自动生成代码_一款自动生成唯一头像的开源代码库
- 阿卡索获近亿元B轮融资,少儿在线英语为什么这么火?
- 老版(旧版)封神榜片头,片尾曲
- Vue项目中如何使用computed计算属性
- HTML5期末大作业:红酒主题网站设计——简洁红酒介绍网页(7页) HTML+CSS+JavaScript...
- 第一代android系统,第一代iPhone对比第一代安卓:谁抄谁了?
- 经典算法之顺序查找(Sequential Search)
- 不吃苦,你要青春何用
- 2021-06-05攻击Linux服务器的四种级别