java8新特性:对map集合排序,根据key或者value操作排序(升序、降序)

直接上代码:

package com.drew.test;

import java.util.List;
import java.util.Map;

import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;

/**
* @author zero 2019/04/08
*/
public class Java8future {

public static void main(String\[\] args) {Map<String, Integer> map = ImmutableMap.of("0", 3, "1", 8, "0.29", 7, "1.67", 3);System.out.println("原始的map:" + map);System.out.println("根据map的key降序:" + sortByKey(map, true));System.out.println("根据map的key升序:" + sortByKey(map, false));System.out.println("根据map的value降序:" + sortByValue(map, true));System.out.println("根据map的value升序:" + sortByValue(map, false));
}/\*\*\* 根据map的key排序\* \* @param map 待排序的map\* @param isDesc 是否降序,true:降序,false:升序\* @return 排序好的map\* @author zero 2019/04/08\*/
public static <K extends Comparable< super K>, V> Map<K, V> sortByKey(Map<K, V> map, boolean isDesc) {Map<K, V> result = Maps.newLinkedHashMap();if (isDesc) {map.entrySet().stream().sorted(Map.Entry.<K, V>comparingByKey().reversed()).forEachOrdered(e -> result.put(e.getKey(), e.getValue()));} else {map.entrySet().stream().sorted(Map.Entry.<K, V>comparingByKey()).forEachOrdered(e -> result.put(e.getKey(), e.getValue()));}return result;
}/\*\*\* 根据map的value排序\* \* @param map 待排序的map\* @param isDesc 是否降序,true:降序,false:升序\* @return 排序好的map\* @author zero 2019/04/08\*/
public static <K, V extends Comparable< super V>> Map<K, V> sortByValue(Map<K, V> map, boolean isDesc) {Map<K, V> result = Maps.newLinkedHashMap();if (isDesc) {            map.entrySet().stream().sorted(Map.Entry.<K, V>comparingByValue().reversed()).forEach(e -> result.put(e.getKey(), e.getValue()));} else {            map.entrySet().stream().sorted(Map.Entry.<K, V>comparingByValue()).forEachOrdered(e -> result.put(e.getKey(), e.getValue()));}return result;
}

}

java8新特性:对map集合排序,根据key或者value操作排序(升序、降序)相关推荐

  1. Java8 新特性遍历list集合

    List<String> stringList = new ArrayList<String>();stringList.add("jack");strin ...

  2. java升序降序排列desc,TreeMap升序|降序排列和按照value进行排序

    TreeMap 升序|降序排列 import java.util.Comparator; import java.util.TreeMap; public class Main { public st ...

  3. java8新特性:对map集合排序

    一.简单介绍Map 在讲解Map排序之前,我们先来稍微了解下map,map是键值对的集合接口,它的实现类主要包括:HashMap, TreeMap, Hashtable以及LinkedHashMap等 ...

  4. java8新特性-stream对map集合进行过滤的方法

    java8新特性-stream对map集合进行过滤的方法 stream对map集合进行过滤的方法

  5. Java8新特性总结 -5.Stream API函数式操作流元素集合

    所有示例代码打包下载 : 点击打开链接 Java8新特性 : 接口新增默认方法和静态方法 Optional类 Lambda表达式 方法引用 Stream API - 函数式操作流元素集合 Date/T ...

  6. java8新特性: lambda表达式:直接获得某个list/array/对象里面的字段集合

    java8新特性: lambda表达式:直接获得某个list/array/对象里面的字段集合 比如,我有一张表: entity Category.java service CategoryServic ...

  7. java8新特性学习笔记(Lambda,stream(),filter(),collect(),map())

    文章目录 1.lambda表达式(重点) 1.需求分析 2.Lambda表达式初体验 3.Lambda的语法规则 3.1 Lambda练习1 3.1 Lambda练习2 4.Lambda表达式的原理 ...

  8. Java8新特性——Map的新方法

    今天是高考的日子,是大四师兄师姐答辩毕业的日子.一代又来,一代又去.好久没写博客,借此特殊日子整理一下前不久学java8新特性时写的代码,留下痕迹.(本博客的代码根据 java8新特性教程 学习整理, ...

  9. List 集合去重方式与 java8新特性stream去重

    以下介绍五种 - 不同的方法去除 Java 中 ArrayList 中的重复数据 1.使用 LinkedHashSet 删除 arraylist 中的重复数据 LinkedHashSet 是在一个 A ...

最新文章

  1. .net和java互操作
  2. shell如何将标准错误输出重定向为标准输出
  3. 音视频技术开发周刊 | 156
  4. Mongodb3.4.4复制集群+分片配置文档
  5. SQLSERVER和ORACLE批量处理表名和字段名大写
  6. linux 如何取执行一个脚本5000次,【shell笔记脚本】嵌套、控制循环以及处理循环输出...
  7. 诺基亚:Symbian 3操作系统拥有多点触控功能
  8. mysql 自动当前时间_Mysql 自动获取当前时间
  9. 电子邮件正则表达式-集结号
  10. P3986 斐波那契数列
  11. JSP的自定义标签(三)之带标签体的标签
  12. 带时效性的条形码_条形码
  13. 互联网人必看的免费引流方法:十八种免费引流小技巧
  14. DA-4-FixBi: Bridging Domain Spaces for Unsupervised Domain Adaptation
  15. 在五环六环之间,有最真实的北京
  16. .NET EF~Entity Framework详解(lambda表达式、linq到EF)
  17. django tests 小结
  18. 服务器篇 使用Windows Server 2012R2搭建DHCP服务器-01
  19. C++11 auto自动类型推导
  20. day21 Excel基本操作

热门文章

  1. 5GNR漫谈5:PDCCH信道设计
  2. 一个有节操的Android视频播放器JieCaoVideoPlayer
  3. 泉州海事学校计算机,初赛公示_2020年全国高校计算机能力挑战赛
  4. windows store下载_《勇者斗恶龙XIS决定版》体验版开放下载,可游玩约10小时
  5. CAD2008画三维界面设置
  6. 高等数学:第一章 函数与极限(4)无穷小与无穷大
  7. 最新-自动化专业毕设题目选题推荐 - 单片机 嵌入式 stm32
  8. 不同产品CE认证的费用和时间差异
  9. bug系列(二)release版本DLL报错,debug版本正常
  10. 正交匹配追踪(OMP)其它改进算法