JDK 1.8新しいプロパティのStream使用(Stream+lambdaを使用してコレクションオブジェクトを操作)


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)匿名内部クラスの使用方法
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