jdk1.8-map根据value排序,取前n位(及简)

public static void main(String[] args) {
    Map<String,Integer> mapRepeat = new HashMap<>();

    mapRepeat.put("aa", 1);
    mapRepeat.put("bb", 45);
    mapRepeat.put("cc", 32);
    mapRepeat.put("dd", 226);
    mapRepeat.put("ee", 16);
    mapRepeat.put("ff", 320);
    mapRepeat.put("gg", 99);


    Map<String,Integer> mapRepeat1 = new HashMap<>();
    mapRepeat1.put("aa", 1);
    mapRepeat1.put("bb", 5);
//.sorted标签,对map根据value排序
//.map方法把map的key转成set
//.subList取前n位,下图(0,5位)

//.retainAll(拿key-set,去与map碰撞),判断交集并覆盖之前的list,取出相交个数

//list的value就是相交的 key,如需value取出即可

    List<String> mobileList = mapRepeat.entrySet().stream()
            .sorted((Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) -> o2.getValue() - o1.getValue())
            .map(entry -> entry.getKey()).collect(Collectors.toList())
            .subList(0, 5);
    mobileList.retainAll(mapRepeat1.keySet());

    System.out.println(JSON.toJSONString(mobileList.size()));
}
阅读更多
个人分类: jdk1.8
上一篇linux-git下载安装(最新)
下一篇spring-AOP实战(最新,实用,简单,爆炸!!!!!)
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭