作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在尝试将 LinkedList 转换为 Map 或 HashMap 时收到 ClassCastException。我有以下链表:
List<Entry<Integer, Integer>> list = new LinkedList<Entry<Integer, Integer>>(map.entrySet());
我正在尝试通过执行以下操作遍历此列表:
Iterator<Entry<Integer, Integer>> iter = ((Map<Integer, Integer>) list).entrySet().iterator(); // this is problematic code
if (iter.hasNext()) {
//do some stuff
}
这样做的正确方法是什么?提前致谢!
最佳答案
您不需要强制转换。 iterator
列表的方法将返回 Iterator<Entry<Integer, Integer>>
如你所愿。这是因为 List
类型是通用的。因此,无论列表中元素的类型如何,也将是 Iterator
的类型参数。 .
同样为了循环,你可能需要一个 while
而不是 if
:
Iterator<Entry<Integer, Integer>> iter = list.iterator();
while (iter.hasNext()) {
Entry<Integer, Integer> entry = iter.next();
//do some stuff with entry
}
或使用 for
循环限制 Iterator
的范围只是循环体:
for (Iterator<Entry<Integer, Integer>> iter = list.iterator(); iterator.hasNext();) {
Entry<Integer, Integer> entry = iter.next();
//do some stuff with entry
}
您也可以使用现有 map 执行此操作。无需创建 LinkedList
如果您只想遍历它们,请填写所有这些条目:
Iterator<Entry<Integer, Integer>> iter = map.entrySet().iterator();
关于java - Entry 和 LinkedLists,遍历它们的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29928214/
我是一名优秀的程序员,十分优秀!