詳細ストリーム構文
イテレータの高度なバージョンとしてストリーム。イテレータのオリジナルバージョンは、ユーザが操作を特定の要素を横断し、実行することができ、高度なバージョンストリームを限りユーザのような、それに含まれる要素の任意の操作を実行する必要があるような「文字列長が10より大きいフィルタリング「」、各文字列の最初の文字を取得する「というように、各要素に固有のこれらのアクションを適用する方法を、十分なストリームを与えます
- ストリームを作成します。
- ストリーム変換、各変換は、元のストリームオブジェクトを変更し、新しいストリームオブジェクトを返すない(**複数の変換があり得ます)。
- ストリーム重合結果所望のを取得する(低減する)ステップ
、リストは重複した文字列を削除します
public List<String> removeStringListDupli(List<String> stringList) { Set<String> set = new LinkedHashSet<>(); set.addAll(stringList); stringList.clear(); stringList.addAll(set); return stringList; }
二、List中依据对象属性去重
List<Person> unique = persons.stream().collect( collectingAndThen( toCollection(() -> new TreeSet<>(comparingLong(Person::getId))), ArrayList::new) );