导航:首页 > 编程语言 > java遍历hashmap

java遍历hashmap

发布时间:2023-10-11 21:58:26

java Map 怎么遍历

关于java中遍历map具体有四种方式,请看下文详解。

1、这是最常见的并且在大多数情况下也是最可取的遍历方式,在键值都需要时使用。

Map<Integer, Integer> map = newHashMap<Integer, Integer>();

for(Map.Entry<Integer, Integer> entry : map.entrySet()) {

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

}

2、在for-each循环中遍历keys或values。

如果只需要map中的键或者值,你可以通过keySet或values来实现遍历,而不是用entrySet。

Map<Integer, Integer> map = newHashMap<Integer, Integer>();

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

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

}

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

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

}

该方法比entrySet遍历在性能上稍好(快了10%),而且代码更加干净。

3、使用Iterator遍历

使用泛型:

Map<Integer, Integer> map = newHashMap<Integer, Integer>();

Iterator<Map.Entry<Integer, Integer>> entries = map.entrySet().iterator();

while(entries.hasNext()) {

Map.Entry<Integer, Integer> entry = entries.next();

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

}

不使用泛型:

Map map = newHashMap();

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

while(entries.hasNext()) {

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

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

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

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

}

4、通过键找值遍历(效率低)

Map<Integer, Integer> map = newHashMap<Integer, Integer>();

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

Integer value = map.get(key);

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

}

假设Map中的键值对为1=>11,2=>22,3=>33,现用方法1来遍历Map代码和调试结果如下:

(1)java遍历hashmap扩展阅读:

1、HashMap的重要参数

HashMap 的实例有两个参数影响其性能:初始容量 和加载因子。容量是哈希表中桶的数量,初始容量只是哈希表在创建时的容量。

加载因子 是哈希表在其容量自动增加之前可以达到多满的一种尺度。当哈希表中的条目数超出了加载因子与当前容量的乘积时,则要对该哈希表进行 rehash 操作(即重建内部数据结构),从而哈希表将具有大约两倍的桶数。

在Java编程语言中,加载因子默认值为0.75,默认哈希表元为101。

2、HashMap的同步机制

注意,此实现不是同步的。 如果多个线程同时访问一个哈希映射,而其中至少一个线程从结构上修改了该映射,则它必须保持外部同步。

(结构上的修改是指添加或删除一个或多个映射关系的任何操作;以防止对映射进行意外的异步访问,如下:

Map m = Collections.synchronizedMap(new HashMap(...));

⑵ Java中怎么遍历map中value值

Map有个values()方法

publicstaticvoidmain(String[]args){
Mapmap=newHashMap();//定义Map集合对象
map.put("apple","新鲜的苹果");//向集合中添加对象
map.put("computer","戚茄配置优良的计算机");
吵森map.put("book","堆积成山的图书");
Collectionvalues=map.values();//获取Map集升仔亩合的value集合
for(Objectobject:values){
System.out.println("键值:"+object.toString());//输出键值对象
}
}
阅读全文

与java遍历hashmap相关的资料

热点内容
newfile命令快捷键 浏览:567
阿里云物理服务器 浏览:953
灵狐视频app哪个好 浏览:257
大厂退役程序员自述 浏览:252
linux命令watch 浏览:889
加密币哪些平台不撤出中国 浏览:553
max加线命令 浏览:424
app胖瘦模式哪个好用 浏览:724
可以下载源码的软件 浏览:487
程序员写一天代码累吗 浏览:628
ie文件夹禁止访问 浏览:544
百川互联网程序员 浏览:784
linuxpython解释器 浏览:669
兴安得力软件加密狗 浏览:494
智能网络摄像头加密 浏览:574
软件毕业程序员培训 浏览:654
安卓陀螺仪低怎么办 浏览:248
一级建造师复习题集pdf 浏览:904
法理学pdf海默 浏览:394
服务器内存储器是用什么的 浏览:820