我找到了一種方法來改造List<Object> to a Map<Integer, Object>
但我需要轉換列表<T>與元素清單地圖(地圖<F<T>,列表<T>>)的Java 7
List<Object> to Map<Integer, List<Object>
比如我有類
class Movie {
public int rank;
public String desc;
public Movie(int rank, String desc) {
this.rank = rank;
this.desc = desc;
}
}
和列表:
List<Movie> movies = new ArrayList<Movie>();
movies.add(new Movie(1, "The Movie 0"));
movies.add(new Movie(2, "The Movie 1"));
movies.add(new Movie(2, "The Movie 2"));
什麼我想有一個地圖每個等級名單的..
List<Movie> -> Map<Integer (rank), List<Movie>>
與番石榴我可以做簡單的變換一樣,
Map<Integer,Movie> mappedMovies = Maps.uniqueIndex(movies, new Function <Movie,Integer>() {
public Integer apply(Movie from) {
return from.getRank();
}});
但並不是Map<Integer, List<Movie>>
我只能找到關於它的帖子
Java: how to transform from List<T> to Map<f1(T), List(f2(T))> without iterating
然而,一種方法是使用Java 8,第二種方法由於某種原因返回ListMultimap<Integer, String>
'ListMultimap'本質上是一個'地圖>'管理列表的創建爲您服務。請參閱http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/collect/ListMultimap.html#asMap(),瞭解如何將其轉換爲普通地圖 –
Kiskae