【发布时间】:2020-02-22 10:33:49
【问题描述】:
目前,我有这个代码。显然,不可能将迭代器与 10 进行比较,但是如何获取当前迭代器元素的值呢?或者我应该使用不同的东西?
public static Set<Integer> removeAllNumbersGreaterThan10(Set<Integer> set) {
Iterator<Integer> it = set.iterator();
while (it.hasNext()) {
if (it > 10) {
it.remove();
}
}
return set;
}
【问题讨论】:
-
您通常如何使用
Iterator?提示:您的代码当前没有迭代。 -
整数 i; while (it.hasNext()) {i = it.next() ...
-
您必须调用
next()来检查下一个元素,如果条件匹配则调用remove()。但是更容易使用set.removeIf(i -> i > 10);。 -
比这个简单
set.removeIf(val -> val > 10); return set; -
谢谢大家,我的错,迷失在“下一个”字眼中,以为一定是“当前”。