package org.tanuneko; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.TreeMap; import static java.util.stream.Collectors.*; public class ToMapSample { private static List<Book> books; private static void init() { books = new ArrayList<Book>(); books.add( new Book( Janre.Sports, "All about Payton Manning") ); books.add( new Book( Janre.Sports, "Andy - how to win at playoff") ); books.add( new Book( Janre.Education, "ABC") ); books.add( new Book( Janre.Education, "Waldorf education - how it works") ); } public static void main( String args[] ) { init(); Map<Janre,List<String>> map = books.stream() .collect(groupingBy(Book::getJanre,TreeMap::new,mapping(Book::getTitle,toList()))); System.out.println(map); } } enum Janre { Education, Sports } class Book { private Janre janre; private String title; public Book( Janre janre, String title ) { this.janre = janre; this.title = title; } public Janre getJanre() { return janre; } public String getTitle() { return title; } }
土曜日, 1月 18, 2014
Java8 - キーごとに分類
以下の例は本オブジェクトのリストに対し,各本のジャンルごとに分類した結果をマップにして返す例.IntelliJのエディタではシンタックスエラーが出るが,コンパイルも実行も問題ない.
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿