java - 从 Set 中删除负值
问题描述
我预计 remove() 方法会删除负值并仅打印正整数,但输出为 -1 -2 -3 4
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class GenericSetTester {
public static void main(String[] args) {
Set<Integer> integerSet = new HashSet<>();
integerSet.add(0);
integerSet.add(1);
integerSet.add(2);
integerSet.add(3);
integerSet.add(4);
integerSet.add(-1);
integerSet.add(-2);
integerSet.add(-3);
for(Iterator<Integer> in = integerSet.iterator(); in.hasNext();){
if(in.next() < 0)
in.remove();
int i = in.next();
System.out.printf("%d ",i);
}
}
}
解决方案
@Eran 答案纠正了您当前的方法。请注意,流提供了另一种处理您的要求的方法:
Integer[] array = new Integer[] {0, 1, 2, 3, 4, -1, -2, -3};
Set<Integer> integerSet = new HashSet<>(Arrays.asList(array));
integerSet = integerSet.stream()
.filter(i -> i >= 0)
.collect(Collectors.toSet());
推荐阅读
- java - 如何在嵌入式 spring ldap 服务器中启用附加模式?
- ios - Xcode Instruments,网络连接:发送的总字节数少于实际
- sql-server - 使用 patindex 连接两个表列的性能调整
- c# - 无法保存“AssemblyInfo.cs”,因为它未在编辑器中打开
- c# - c#如何验证用户的类型?
- android - 从 sqlite android 实现更好的搜索
- php - 一旦我们得到浏览器的响应,如何显示消息
- c# - C# MongoDB IAsyncCursor 解释
- java - Log4j2 RollingFileManager OnStartupTriggeringPolicy 从不在启动时滚动文件
- twig - symfony 2.8 可以用 twig 2.4.4 更新吗?