Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // 1
- private Map<String, List<Book>> createCategoryToBooksListMap(List<Book> allBooks) {
- return allBooks
- .map(toCategoriesAndBooksList())
- .flatMap(fromListOfList())
- .groupBy(category())
- .mapValues(toBooksList());
- }
- private Function<Book, List<Tuple2<String, Book>>> toCategoriesAndBooksList() {
- return book -> List.of(book.getCategories()).map(category -> Tuple.of(category, book));
- }
- private Function<List<Tuple2<String, Book>>, Iterable<? extends Tuple2<String, Book>>> fromListOfList() {
- return list->list;
- }
- private Function<Tuple2<String, Book>, String> category() {
- return t -> t._1;
- }
- private Function<List<Tuple2<String, Book>>, List<Book>> toBooksList() {
- return v->v.map(t->t._2);
- }
- // 2
- private Map<String, List<Book>> createCategoryToBooksListMap(List<Book> allBooks) {
- return allBooks
- .map(this::toCategoriesAndBooksList)
- .flatMap(this::fromListOfLists)
- .groupBy(this::category)
- .mapValues(this::toBooksList);
- }
- private List<Tuple2<String, Book>> toCategoriesAndBooksList(Book book) {
- return List.of(book.getCategories()).map(category -> Tuple.of(category, book));
- }
- private List<Tuple2<String, Book>> fromListOfLists(List<Tuple2<String, Book>> list) {
- return list;
- }
- private String category(Tuple2<String, Book> t) {
- return t._1;
- }
- private List<Book> toBooksList(List<Tuple2<String, Book>> v) {
- return v.map(t->t._2);
- }
Advertisement
Add Comment
Please, Sign In to add comment