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 件のコメント:
コメントを投稿