java中map的相关问题!

java中map的相关问题!,第1张

方法

在for-each循环中使用entries来遍历

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

Map<Integer, Integer> map = new HashMap<Integer, Integer>();

for (MapEntry<Integer, Integer> entry : mapentrySet()) {

Systemoutprintln("Key = " + entrygetKey() + ", Value = " + entrygetValue());

}

注意:for-each循环在java 5中被引入所以该方法只能应用于java 5或更高的版本中。如果你遍历的

是一个空的map对象,for-each循环将抛出NullPointerException,因此在遍历前你总是应该检查

空引用。

方法二 在for-each循环中遍历keys或values。

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

Map<Integer, Integer> map = new HashMap<Integer, Integer>();

//遍历map中的键

for (Integer key : mapkeySet()) {

Systemoutprintln("Key = " + key);

}

//遍历map中的值

for (Integer value : mapvalues()) {

Systemoutprintln("Value = " + value);

}

该方法比entrySet遍历在性能上稍好

请添加详细解释

最近用到一个小函数,出现了bug记录一下。用c++遍历文件夹下所有文件并返回路径。(下面是脚本,网上搜一下很多)

2不搜索子文件夹

3所有文件夹下指定后缀文件

Win10下报错, 使用文件遍历函数 _findnext 会报0xC0000005错误 !!(Win7下没有问题)

因为, _findnext() 第一个参数”路径句柄”,返回的类型为 intptr_t(long long) ,如果定义为 long ,在win7中是没有问题,但是在win10中就要改为 long long 或者 intptr_t

最简单的,直接修改类型即可:

[参考链接]

>

把int改成Integer 。那是因为泛型,就是说map里你只能放String-String的名值对,你不加也不算错。

Map里存放的是名-值对,名就是元素的索引,你只能通过名来取出值。get(Object key)不要试图同时取出a和b,a和b是存在映射的关系的,你要把a看成是b的索引。

以上就是关于hashmap的遍历全部的内容,包括:hashmap的遍历、解决办法:_findnext()报错、java中map的相关问题!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/8833017.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-22
下一篇 2023-04-22

发表评论

登录后才能评论

评论列表(0条)

保存