当前位置: 首页 > news >正文

s吗网站虚拟主机企业网站建设开发注意事项

s吗网站虚拟主机,企业网站建设开发注意事项,网站二维码怎么做,莒南县网站建设在Java中,有多种方法可以对Map进行排序,但是我们将重点介绍Java 8 Stream,这是实现目标的一种非常优雅的方法。 学习一下HashMap的merge()函数 在学习Map排序之前,有必要讲一下HashMap的merge()函数,该函数应用场景就…

在Java中,有多种方法可以对Map进行排序,但是我们将重点介绍Java 8 Stream,这是实现目标的一种非常优雅的方法。

学习一下HashMap的merge()函数

在学习Map排序之前,有必要讲一下HashMap的merge()函数,该函数应用场景就是当Key重复的时候,如何处理Map的元素值。这个函数有三个参数:

  • 参数一:向map里面put的键
  • 参数二:向map里面put的值
  • 参数三:如果键发生重复,如何处理值。可以是一个函数,也可以写成lambda表达式。
    String k = "key";HashMap<String, Integer> map = new HashMap<String, Integer>() {{put(k, 1);}};map.merge(k, 2, (oldVal, newVal) -> oldVal + newVal);

上面一段代码,首先创建了一个HashMap,并往里面放入了一个键值为k:1的元素。当我们调用merge函数,往map里面放入k:2键值对的时候,k键发生重复,就执行后面的lambda表达式。表达式的含义是:返回旧值oldVal加上新值newVal(1+2),现在map里面只有一项元素那就是k:3。

按Map的键排序

下面一个例子使用Java 8 Stream按Map的键进行排序:

    // 创建一个Map,并填入数据Map<String, Integer> codes = new HashMap<>();codes.put("United States", 1);codes.put("Germany", 49);codes.put("France", 33);codes.put("China", 86);codes.put("Pakistan", 92);// 按照Map的键进行排序Map<String, Integer> sortedMap = codes.entrySet().stream()    .sorted(Map.Entry.comparingByKey()).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue,(oldVal, newVal) -> oldVal,LinkedHashMap::new));// 将排序后的Map打印sortedMap.entrySet().forEach(System.out::println);

看上文中第二段代码:

  • 首先使用entrySet().stream() 将Map类型转换为Stream流类型。
  • 然后使用sorted方法排序,排序的依据是Map.Entry.comparingByKey(),也就是按照Map的键排序
  • 最后用collect方法将Stream流转成LinkedHashMap。 其他参数都好说,重点看第三个参数,就是一个merge规则的lambda表达式,与merge方法的第三个参数的用法一致。由于本例中没有重复的key,所以新值旧值随便返回一个即可。

上面的程序将在控制台上打印以下内容,键(国家/地区名称)以自然字母顺序排序:

    China=86France=33Germany=49Pakistan=92United States=1

按Map的值排序

使用Stream API按其值对Map进行排序:

    Map<String, Integer> sortedMap2 = codes.entrySet().stream().sorted(Map.Entry.comparingByValue()).collect(Collectors.toMap(Map.Entry::getKey,Map.Entry::getValue,(oldVal, newVal) -> oldVal,LinkedHashMap::new));sortedMap2.entrySet().forEach(System.out::println);

结果:

    United States=1France=33Germany=49China=86Pakistan=92

使用TreeMap按键排序

大家可能都知道TreeMap内的元素是有顺序的,所以利用TreeMap排序也是可取的一种方法。您需要做的就是创建一个TreeMap对象,并将数据从HashMapput到TreeMap中,非常简单:

    // 将 `HashMap` 转为 `TreeMap`Map<String, Integer> sorted = new TreeMap<>(codes);sorted.entrySet().forEach(System.out::println);

结果:

    China=86France=33Germany=49Pakistan=92United States=1

如上所示,键(国家/地区名称)以自然字母顺序排序。

http://www.yayakq.cn/news/299107/

相关文章:

  • 福州网站制作维护提高网站访问量
  • 用php做网站教程扬州网站商城建设价格表
  • 本地网站模板什么网站动物和人做的吗
  • 建设工程施工许可证查询网站阳江人力资源招聘网最新招聘
  • 女装网站建设规划书怎么写阿里云域名注册官网首页
  • 网站怎么申请域名wordpress春节插件
  • 网站信息备案查询网站建设百度知道
  • wordpress制作视频站吉林seo基础知识
  • 站长之家 wordpress 流量统计深圳网站设计公司
  • 做网站市场价格凡科网 小程序
  • 网站简繁切换js给企业做网站用什么程序
  • 企业网站用哪个cms好牛企网络科技有限公司
  • 网站建设juxinghulianwordpress dux5.1
  • 服务器怎样做网站呢wordpress单栏简洁
  • 深圳 网站 设计自己如何制作一个软件
  • 可以自己做漫画的网站营销型网站建设tfx88
  • 大连做网站优化哪家好2019网站seo
  • 中国建设网站下载广州网站建设技术外包
  • 网站托管目的是什么织梦网站logo更改
  • 有模板如何做网站网站开发微信小程序需求量大吗
  • 金融做市场广告挂哪些网站wordpress企业主题购买
  • 购物网站建设源码wordpress jiustore
  • 免费网站下载直播软件简单医院网站
  • 佳木斯做网站中国建设银行官网企业网银登录
  • 长春网站制作wang用cms创建自己带数据库的网站
  • 网站运营这么做长春网站公司哪家好
  • 浏览器 网络 网站aso应用优化
  • 自己做的网站如何让百度搜索公司网站建设方案详细方案
  • 网页设计与网站建设在线第二章黄页网站怎么查
  • 青岛万维网站设计字体设计软件