导航:首页 > 编程语言 > 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相关的资料

热点内容
海康威视sip服务器地址 浏览:163
挖掘机程序员哪个好 浏览:458
方舟怎么进上一次进的服务器 浏览:635
pdf怎样剪切 浏览:906
git编译所有文件命令 浏览:694
伪军pdf 浏览:418
如何判断基本命令 浏览:972
pdf批量删除 浏览:943
广播android静态动态区别 浏览:390
centos7设置为命令行启动 浏览:570
程序员资质资格证 浏览:217
常见编码加密 浏览:236
阿狸免费云服务器 浏览:764
快速配置服务器bmc地址 浏览:968
机械手臂编程自动化 浏览:501
怎么看银行app的银行卡号 浏览:84
pdf文件改ppt 浏览:196
ecs对比云服务器 浏览:852
必剪app怎么没有美颜 浏览:176
唯库的视频怎么下载app 浏览:465