Javaで複数のパラメータに応じて、リスト上のデータをフィルタリングするには?

クリスGarsonn:

私はのリスト持ってGroupOfficesを

List<GroupOffice> officesOfTheGroup;

私はIDが等しくないかどうかを検索したいgroupOffice.getId(ロング値)が、ラベルがあるgroupOffice.getLabel(文字列)とブール値に割り当てます。コードの下の良好な作業ですが、すべての項目を代わりに行くの任意のより良いアプローチは、forループであるのでしょうか?

 public GroupOfficeDto saveGroupOffice(GroupOfficeDto groupOfficeDto) {     
            List<GroupOffice> officesOfTheGroup = //some list from db..
            for (GroupOffice go : officesOfTheGroup) {
                if ((!go.getId().equals(groupOfficeDto.getId())) && go.getLabel().equals(groupOfficeDto.getLabel())) {
                    return groupOfficeDto;
                }
        return null:
}

またはどのように私はストリームを使用することができますか?その場合は、ストリームを使用していることはそれのためのより良い方法はありますか?

注:私はJava8を使用しています

ルスラン:

あなたはブール値が必要な場合は行うことができます。

boolean b = officesOfTheGroup.stream()
    .anyMatch(office -> !office.getId().equals(5) && office.getLabel().equals("London"))

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=223315&siteId=1
おすすめ