JDK8から導入されたという「ラムダ式」。 .NETにはとっくに昔にあったので、追従した形となった。 現場で使われるようになるのはまだ先だろうが、とりあえず.NET同様のサンプルを作ってみた。
≪クラス PriceListElement≫
public class PriceListElement { private int id; private String name; private int price; public void setId(int id) { this.id = id; } public int getId() { return id; } public void setName(String name) { this.name = name; } public String getName() { return this.name; } public void setPrice() { this.price = price; } public int getPrice() { return this.price; } public PriceListElement(int id, String name, int price) { this.id = id; this.name = name; this.price = price; } public String toString() { return id + ", " + name + ", " + price; } }
≪クラス Main≫
import java.util.List; import java.util.ArrayList; import java.util.stream.Stream; public class Main { public static void main(String[] args) { final List<PriceListElement> priceList = new ArrayList<PriceListElement>(); priceList.add(new PriceListElement(1, "apple", 120)); priceList.add(new PriceListElement(2, "orage", 88)); priceList.add(new PriceListElement(3, "water melon", 250)); priceList.add(new PriceListElement(4, "melon", 500)); Stream<PriceListElement> result = priceList.stream().filter(e -> e.getPrice() >= 100); print(result); result = priceList.stream().filter(e -> e.getName().contains("melon")); print(result); } public static void print(Stream<PriceListElement> list) { System.out.println("-----"); for(Object e : list.toArray()) { System.out.println(e); } } }
≪実行結果≫
----- 1, apple, 120 3, water melon, 250 4, melon, 500 ----- 3, water melon, 250 4, melon, 500
以下を参考にした。