这是我第一次处理 HashMap
,我试图做一个简单的循环来遍历每个键,但代码甚至没有进入 for 循环
...有人能帮我吗?
for(int i=0; i< ackPkts.size()-1; i++){
System.out.println("yasmin");
if (ackPkts.get(i).getAckNo() == ackPkts.get(i-1).getAckNo()){
System.out.println("there's a retransmissionS here");
}else{
v = value.indexOf(ackPkts.get(i).getAckNo() -1);
}
}
它甚至不打印 yasmin !
最佳答案
您不能像 Array
或 List
那样迭代映射,即使您的键是 Integer
并且是连续的也是非常不鼓励的。
for(int i=0; i< ackPkts.size()-1; i++){ // WRONG!
要迭代 map 的每个条目,请使用 entrySet()
方法:
for (Map.Entry<Integer, String> entry : map.entrySet())
{
System.out.println(entry.getKey() + "/" + entry.getValue());
}
另外如其他答案所述,由于 -1
您使用了 size,因此存在很多错误,但这将避免迭代 的
;)entrySet
> map
关于java - 我在 hashmap 上的 for 循环出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30347458/