또는 구글 구아바 구글 구아바 Multimap과를 사용
구현 GROUPBY 프로젝트
및 기능
이 구글 구아바 Multimap과 및 기능을 사용하여 콜렉션과 같은 기능에 의해 그룹을 만드는 방법 중 하나입니다 사용할 수 있습니다.
코드는 바로 메서드를 사용하여 데이터를 그룹화합니다. 여기서 우리는 2 열을 사용하여 부서별로 그룹화합니다.
샘플 출력
key = Dev
1 : Greg
3 : Roman
key = Support
2 : Leo
4 : Jobby
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import com.google.common.base.Function;
import com.google.common.collect.Lists;
import com.google.common.collect.Multimap;
import com.google.common.collect.Multimaps;
public class GroupByMultimap {
public static void main(String[] args) {
Object[] o1 = new Object[] { 1, "Greg", "Dev" };
Object[] o2 = new Object[] { 2, "Leo", "Support" };
Object[] o3 = new Object[] { 3, "Roman", "Dev" };
Object[] o4 = new Object[] { 4, "Jobby", "Support" };
List<Object[]> rows = Lists.newArrayList(o1, o2, o3, o4);
Multimap<String, Object[]> grouped = Multimaps.index(rows,
new Function<Object[], String>() {
@Override
public String apply(Object[] item) {
return (String) item[2];
}
});
Iterator<String> keyIterator = grouped.asMap().keySet().iterator();
while (keyIterator.hasNext()) {
String key = keyIterator.next();
System.out.println("key = " + key);
Collection<Object[]> dataRows = grouped.get(key);
for (Object[] o : dataRows) {
System.out.println(String.format(" %d : %s", o[0], o[1]));
}
}
}
}