2016-03-29 8 views
3

私がしたいことは、空のHashSetに1から15までの値を加算することです。ストリームを空にして値を追加する

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

ループを使用しないでください。 Javaはそれを機能的にサポートしていますか?ストリーム?

答えて

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

'設定し vipSeats =新しいHashSetの<>(LongStream.rangeClosed(1、15) OPは 'HashSet'を呼び出すので、' Collectors.toSet() 'によって返される' Set'の型に関する保証はありません。 –

+2

@YassinHajaj(コレクタ.toSet());)またはCollectors.toCollection(() - > vipSeats) 'を使用して、2つのセットを作成しないようにします。 –

+0

本当に良い。 –

4

あなたが欲しいセットに評価さ表現を探している場合は、https://stackoverflow.com/a/36285091/3553087は罰金答えです。

あなたはは、既存のセットに番号を追加すること声明をしたい場合は、あなたが行うことができます:

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

その場合、 '.boxed()'は必要ありません... – Holger

関連する問題