在空集合上进行流操作,添加值

3

我想做的是将从1到15的数值添加到空的HashSet中。

Set<Long> vipSeats = new HashSet<>();

我可以避免使用循环吗?Java是否支持函数式编程,例如流?

2个回答

8
LongStream.rangeClosed(1, 15).boxed().collect(Collectors.toSet());

1
Set<Long> vipSeats = new HashSet<>(LongStream.rangeClosed(1, 15).boxed().collect(Collectors.toSet())); 因为 OP 要求使用 HashSet,而我们无法保证 Collectors.toSet() 返回的是什么类型的 Set - Yassin Hajaj
2
@YassinHajaj 或 Collectors.toCollection(() -> vipSeats),以避免创建两个集合。 - Andy Turner
@Tunaki 更好! - Yassin Hajaj

4

如果您正在寻找一个可以评估为您想要的集合的表达式,那么https://dev59.com/RpXfa4cB1Zd3GeqPgIf2#36285091是一个不错的答案。

如果您想要一个语句来将数字添加到现有集合中,则可以执行以下操作:

LongStream.rangeClosed(1,15).forEach(vipSeats::add);

在这种情况下,您不需要使用.boxed()... - Holger

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接