Java8のStream API filterメソッドを理解するにはPredicateインタフェースを理解する

Java8のStream API filterメソッドを理解するにはPredicateインタフェースを理解する

filterメソッドはマッチする要素のみを抽出するメソッドです。

filterメソッドはPredicateを引数に持ちます。

java.util.function.Predicateインタフェースを見るとtestメソッドが一つだけある関数型インタフェースというやつになります。(@FunctionalInterfaceアノテーションが付与されていること、抽象メソッドが一つのみであること)

Employeeクラスがあるとします。

public class Employee {
private String name;
private int age;
public Employee(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}

view raw
Employee
hosted with ❤ by GitHub

Predicateクラスを実装します。

testメソッドは仮引数にEmployeeを持ち、tで始まるnameの場合、trueを返し、それ以外はfalseを返します。

filterの引数にPredicateを渡します。

ラムダ式で書く

ラムダ式で書くと以下のように記述できます。

testメソッド一つのみなので、testを省略でき、仮引数はEmployeeなのでeはEmployeeを表します。

Objects.nonNullメソッドを使用する

filterメソッドでnull以外を対象としたい場合にObjects.nonNullメソッドを使用してNullを排除します。

Java8のStream API mapメソッドを理解するにはFunctionインタフェースを理解する

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA