list统计

阅读更多
package dx.report.schedule;

import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

public class TT {

	public static void main(String[] args) {
		final List tts = new ArrayList();
		tts.add("111:xxxx");
		tts.add("111:xxxx");
		tts.add("222:yyyyy");
		tts.add("111:yyyyy");
		tts.add("111:yyyyy");
		tts.add("111:yyyyy");
		tts.add("111:zzzzz");
		tts.add("111:zzzzz");
		tts.add("111:zzzzz");
		tts.add("111:zzzzz");
		tts.add("111:zzzzz");
		tts.add("111:zzzzz");
		tts.add("111:zzzzz");
		tts.add("111:zzzzz");
		tts.add("333:zzzzz");

//		System.out.println(tts.stream()
//        	.collect(Collectors.groupingBy(x->{return x.toString().split(":")[0];}, Collectors.groupingBy(x->{return x.toString().split(":")[1];}))));
//	
		Map> groups = tts.stream().collect(Collectors.groupingBy(x->{return x.toString().split(":")[0];}));
		groups.forEach((k,v)->{
			final List tlist = v.stream().map(x->{return x.replace(k+":", "");}).collect(Collectors.toList());
			Map unsortMap = tlist.stream()
										.distinct()
										.collect(Collectors.toMap(String::toString, x->{
												return tlist.stream().filter(t->t.equals(x)).count();
											}));
			Map result = new LinkedHashMap<>();
			unsortMap.entrySet().stream()
		             .sorted(Map.Entry.comparingByValue().reversed())
		             .forEachOrdered(x -> result.put(x.getKey(), x.getValue()));
			
			System.out.println(result);
			 
//			final List tt = new ArrayList<>();
//			tg.forEach((a,b)->{tt.add(b+":"+a);});
//			List fis = tt.stream().sorted((h1,h2)->h2.compareTo(h1)).collect(Collectors.toList());
//			System.out.println(fis);
		});
	}
	
//	public static void  t2() {
//		List> list = new ArrayList<>();
//		Random random = new Random();
//		String[] strings = { "A", "B", "C" };
//		for (int i = 0; i < 5; i++) {
//		    Map map = new HashMap<>();
//		    for (int j = 0; j < 3; j++) {
//		        map.put(strings[random.nextInt(3)], random.nextInt(10));
//		    }
//		    list.add(map);
//		}
//		System.out.println(list);
//		Map sum = list.stream() //
//		        .flatMap((map) -> map.entrySet().stream()) //
//		        .collect(Collectors.toMap(Entry::getKey, Entry::getValue, Integer::sum));
//		System.out.println(sum);
//	}
}

 

你可能感兴趣的:(java8)