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));

参考(https://qiita.com/tag1216/items/91626d04930a9576e0de)