Streamの終端処理でLinkedHashSetにして取得する
JavaのStream処理の終端処理では、.collect(Collectors.toSet());
で終わらせると、要素の集合をSet
で取得できるが、当然ながら順序は失われてしまう。
順序が失われないようにするためには、LinkedHashSet
を使用すればよいが、Stream処理での終端処理の書き方は以下のようになる。
.collect(Collectors.toCollection(LinkedHashSet::new));
一連の処理を書くと以下の通り。
// 例
Set<Integer> set = Stream.of(30, 20, 50, 10, 40)
.sorted()
.collect(Collectors.toCollection(LinkedHashSet::new));