【发布时间】:2017-06-21 07:52:05
【问题描述】:
请注意这是一个错误的问题。我问它是因为当我尝试使用 Iterator 时,我的 IntelliJ 一直在警告“Iterator”说 Iterator 不能有类型参数,这是不正确的。
不知何故,我的 IntelliJ 似乎显示了 java 1.4 的 javadoc。我仍在尝试修复它。谢谢。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^
我在一个 java 程序中工作,其中一个 api 返回一个列表。
我的处理方式是:
ArrayList<SomeObject> arrayList = new ArrayList<>(apiThatReturnsAList);
for (SomeObject someObject : arrayList) {
...
}
我的代码审查员认为这可能是一种不太有效的处理方式,因为它会复制数据。他建议我使用迭代器。但我发现代码是这样的:
Iterator iterator = apiThatReturnsAList.iterator();
while (iterator.hasNext()) {
SomeObject someObject = (SomeObject)iterator.next();
}
这里有丑陋的演员阵容,我们不想看到,因为它不安全。
那么,有没有一种有效的方法来处理这个 api 而不是复制数据?
谢谢!
【问题讨论】:
-
你应该使用泛型。
-
为什么你认为你需要复制
List?你为什么要使用 原始类型Iterator。你为什么要直接引用ArrayList。如果我是你的评论者,我会对这个烂摊子有很多意见。 -
首先简单地迭代返回的列表有什么问题?
-
@SLaks 感谢您的建议。
标签: java arraylist collections iterator