私は書籍のリストを持っています。ラムダを使ってオブジェクトフィールドの重複数をどのように数えることができますか?
final List<Book> books = new ArrayList<>();
books.add(new Book(50, "Book1", 1997));
books.add(new Book(110, "Book2", 1998));
books.add(new Book(150, "Book3", 1999));
books.add(new Book(200, "Book4", 2000));
books.add(new Book(250, "Book1", 2001));
タイトルごとに重複を数えようとしました。
final Integer countDuplicates = books.stream()
.filter(b -> Collections.frequency(books, b.getTitle()) > 1)
.collect(Collectors.toList()).size();
しかし、動作しません。お願い助けて。
[mcve]を入力してください。特に、私はBookクラスで 'equals'を実装していないと思われますが、コードを表示していません。 – assylias
私はデフォルトのEclipse自動生成ツールでequalsとhashCodeを実装しました。これは常に十分でした – Comfmore
"それは動作しません"あなたが直面している問題の有用な説明ではありません。期待したことと何が起こったのかを説明できますか? –