`

list统计

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

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics