Javaの8はPとアドレスの開始を持つすべての従業員を取得します

ナリニWanjale:

私は以下のように、従業員とアドレスのクラスを持っています

class Employee {
    private String name;
    private int age;
    private List<Address> addresses;
    //getter and setter
}

class Address {
    private String city;
    private String state;
    private String country;
    //getter and setter
}

私はPで始まる都市を持っているすべての従業員を印刷したいのJava 8のフィルタを使用します

何そのフィルタアドレスのEMPを取得するためにコードの下に追加します

employees.stream()
    .map(Employee::getAddresses)
    .flatMap(Collection::stream)
    .filter(children -> children.getCity().startsWith("p"))
    .collect(Collectors.toList())
    .forEach(System.out::println);

前もって感謝します。

また:

使用anyMatchfilterの代わりにmappingを実行:

employees.stream()
         .filter(employee -> employee.getAddresses().stream()
                 .anyMatch(adr -> adr.getCity().startsWith("p")))
         .forEach(System.out::println); // collecting not required to use forEach

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=423054&siteId=1