JDK 1.8新しいプロパティのStream使用(Stream+lambdaを使用してコレクションオブジェクトを操作)
2072 ワード
Stream
Streamは、JDK 1.8の後にjavaによって提供されるフローの集合である.コレクションを操作するためのツール.中には抽象的な方法しかないインタフェースが大量に提供されています.
【2】「抽象的な方法が1つしかないインタフェース」の特性から,JDK 1.8のインタフェースの新しい特性Lambda式について容易に考えられる.
参照:https://blog.csdn.net/c17315377559/article/details/99122421
以下のケースを通じて、このクラスを理解します.
【例題】Cで始まる以下のアルファベットを探し出し、ASCIIコードテーブルの大きさで並べ替えます.Streamストリームを使用してListセットを操作します.
(china、cafe、hello、world、date、map、list、love,clear)
(1)匿名内部クラスの使用方法
cafe china clear
フィルタメソッドを使用して、必要なコンテンツをフィルタします.Predicateインタフェースのtestメソッドを実装し、falseを返すとフィルタされます.
sortedメソッドを使用して、必要なコンテンツをソートします.Comparatorインタフェースのcomparareメソッドを実装し、戻り値はintです.戻り値の正負に基づいてソートします.
forEachメソッドを使用して、私たちのコンテンツを出力します.
(2)lambda関数式を用いて行う
Lambdaの内容については、https://blog.csdn.net/c17315377559/article/details/99122421
Streamは、JDK 1.8の後にjavaによって提供されるフローの集合である.コレクションを操作するためのツール.中には抽象的な方法しかないインタフェースが大量に提供されています.
【2】「抽象的な方法が1つしかないインタフェース」の特性から,JDK 1.8のインタフェースの新しい特性Lambda式について容易に考えられる.
参照:https://blog.csdn.net/c17315377559/article/details/99122421
以下のケースを通じて、このクラスを理解します.
【例題】Cで始まる以下のアルファベットを探し出し、ASCIIコードテーブルの大きさで並べ替えます.Streamストリームを使用してListセットを操作します.
(china、cafe、hello、world、date、map、list、love,clear)
(1)匿名内部クラスの使用方法
public class StreamDemo {
public static void main(String[] args) {
List list = new ArrayList();
list.add("china");
list.add("hello");
list.add("cafe");
list.add("world");
list.add("date");
list.add("map");
list.add("list");
list.add("love");
list.add("clear");
Stream stream = list.stream();
stream.filter(new Predicate() {
// c
@Override
public boolean test(String t) {
return t.startsWith("c");
}
}).sorted(new Comparator() {
//
// compareTo
// , , 。
// , , 。
@Override
public int compare(String o1, String o2) {
return o1.compareTo(o2);
}
}).forEach(new Consumer() {
//foreach for
@Override
public void accept(String t) {
System.out.println(t);
}
});
}
}
結果:cafe china clear
フィルタメソッドを使用して、必要なコンテンツをフィルタします.Predicateインタフェースのtestメソッドを実装し、falseを返すとフィルタされます.
sortedメソッドを使用して、必要なコンテンツをソートします.Comparatorインタフェースのcomparareメソッドを実装し、戻り値はintです.戻り値の正負に基づいてソートします.
forEachメソッドを使用して、私たちのコンテンツを出力します.
(2)lambda関数式を用いて行う
Stream stream = list.stream();
stream.filter(t -> t.startsWith("c"))
.sorted((str1, str2) -> str1.compareTo(str2))
.forEach(t -> System.out.println(t));
このことから,lambda式を用いることで,我々のコードをより簡潔にすることができる.Lambdaの内容については、https://blog.csdn.net/c17315377559/article/details/99122421