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
以下を参考にした。