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); // } }
list统计
猜你喜欢
转载自yaweidai.iteye.com/blog/2331017
今日推荐
周排行