我想按照对象字段进行筛选。
我希望能得到一份不包含英语的书籍清单。
结果应该是:
我试图这样做:但它没有从book1中删除'en'。
List<Book> = Arrays.asList<book1, book2, book3>;
class Book {
String author;
List<Language>;
}
class Language {
String locale;
int code;
}
Book book1 = new Book("author1", Arrays.asList(new Language("en", 1), new Language("fr", 3)));
Book book2 = new Book("author2", Arrays.asList(new Language("ca", 2), new Language("fr", 3)));
Book book3 = new Book("author3", Arrays.asList(new Language("en", 1)));
我希望能得到一份不包含英语的书籍清单。
结果应该是:
List<Book> = Arrays.asList<book1, book2>;
Book book1 = new Book("author1", Arrays.asList(new Language("fr", 3)));
Book book2 = new Book("author2", Arrays.asList(new Language("ca", 2), new Language("fr", 3)));
我试图这样做:但它没有从book1中删除'en'。
return books
.stream()
.filter(book -> book.getLanguages()
.stream()
.allMatch(value -> !"en".equals(value.getLanguage())))
.collect(Collectors.toList());