属性のJava 8:反復およびグループは、オブジェクトに基づいて、リストからオブジェクトをすることは、私は(GlobalBooks)のリストを持っている
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
GlobalBooks globalBooks = new GlobalBooks();
List<Book> bookList = new ArrayList<Book>();
Book book = new Book();
List<BookContent> bookContents = new ArrayList<BookContent>();
book.setBookName("A");
BookContent content = new BookContent();
content.setDescription("December 2016");
content.setComponentID(20l);
bookContents.add(content);
content = new BookContent();
content.setDescription("January 2016");
content.setComponentID(30l);
bookContents.add(content);
content = new BookContent();
content.setDescription("Febuary 2016");
content.setComponentID(40l);
bookContents.add(content);
book.setContents(bookContents);
bookList.add(book);
book = new Book();
bookContents = new ArrayList<BookContent>();
book.setBookName("B");
content = new BookContent();
content.setDescription("December 2016");
content.setComponentID(20l);
bookContents.add(content);
content = new BookContent();
content.setDescription("January 2016");
content.setComponentID(30l);
bookContents.add(content);
content = new BookContent();
content.setDescription("Febuary 2016");
content.setComponentID(40l);
bookContents.add(content);
book.setContents(bookContents);
bookList.add(book);
globalBooks.setBooks(bookList);
System.out.println(globalBooks);
}
}
以下のようになりますどの私はglobalBooks応答をストリーミングすることができたJava 8の機能を探していますし、 BooksContentの説明フィールドに基づいてBooks of Listのマップを収集します。
Map<String,List<Books>>
つまり、同じ説明のすべての書籍は説明でグループ化する必要がありますか?
私はこれを通常のjava経由で行うことができますが、コードはあまりにも面倒で不安定になります。
各書籍には内容の異なる複数のコンテンツがあるため、各書籍を複数のマップエントリに表示する必要がありますか? –
Guava 'MultiMap'を使った同様の質問:[アイテムのプロパティのコレクションによってインデックスを作成する最もクリーンな方法はコレクションです](http://stackoverflow.com/questions/23003754/cleanest-way-to-index-a -collection-by-a-of-the-items-of-its-is-a) – MikaelF