关于java list分组网上有很多的代码,在此我来用guava做一个分组的例子,代码如下:
package com.netease.ad.omp.common.utils;
import com.google.common.base.Function;
import com.google.common.collect.Multimap;
import com.google.common.collect.Multimaps;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
/**
* Created with IntelliJ IDEA
*/
public class GroupByUtils {
public static <T> List<List<T>> groupBy(final List<T> list, final String groupBy){
List<List<T>> result = new LinkedList<>();
Multimap<String, T> grouped = Multimaps.index(list,
new Function<T, String>() {
@Override
public String apply(T item) {
return groupBy;
}
});
Iterator<String> keyIterator = grouped.asMap().keySet().iterator();
while (keyIterator.hasNext()) {
String key = keyIterator.next();
List<T> groupedDataRows = (List<T>) grouped.get(key);
result.add(groupedDataRows);
}
return result;
}
}