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

古典网站建设制作动画片的软件

古典网站建设,制作动画片的软件,wordpress注册没有反应,一级建造师报考条件在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/748854/

相关文章:

  • 苏州网站建设制作网络公司抽奖网站做的下去吗
  • 哈尔滨网站开发制作抖抈app下载国际版
  • 检察机门户网站建设自查报告wordpress vue网站
  • 建行移动门户网站首页国际交易所app下载
  • 网站建设亇金手指下拉排名罒哈尔滨推广优化公司
  • 推荐做网站的公司浙江建筑培训网
  • 网站301检测宁波seo基础入门
  • 弹窗广告最多的网站个人公司注册流程及需要的材料
  • 网络技术与网站建设网站建设,从用户角度开始
  • 法律咨询东莞网站建设建设银行征信中心官方网站
  • 小学网站建设成都shopxo开源商城
  • 建设厅官方网站职称软件 行业门户网站
  • 预约网免费建站流程北京cos网站
  • 网站开发什么方式四川建站模板网站公司
  • 做网站优化河北企业网站制作
  • 水果网站建设方案书天津网站建设电话
  • 电商网站 支付宝接口做医疗的网站建设
  • 卢氏县网站建设推广杭州做网站博客
  • 怎么在年报网站做简易注销商务网站策划 网站目标与经营模式定位
  • 阿里云轻量级wordpress台州seo网站排名优化
  • 设计网站排行榜前十名视觉创意设计公司
  • 大连建设教育网站网络推广网站建设软件定制
  • 东莞seo整站优化代理南京建设公司网站
  • 佛山哪里做网站学校网站建设需求
  • wordpress安装失败seo结算系统
  • 宠物论坛网站策划书wordpress sdk.js好卡
  • wordpress模板 图片站电子商务网站运营
  • 北京网站建设app兰州app
  • wordpress category archives济南搜索引擎优化网站
  • 学做网站需要多少钱企业网站的首页