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

小程序网站备案网站建设柒首先金手指6

小程序网站备案,网站建设柒首先金手指6,建材类网站模板,潍坊网站seo外包在工作中遇到了java8 Stream groupBy 分组排序失效的问题 在此记录一下解决方案 预期效果#xff1a; 按照年纪倒序并分组 实际结果#xff1a;返回的数据是杂乱无章#xff0c;并没有按照年纪倒序 示例代码如下#xff1a; import java.util.Comparator; import java.u… 在工作中遇到了java8 Stream groupBy 分组排序失效的问题 在此记录一下解决方案 预期效果 按照年纪倒序并分组 实际结果返回的数据是杂乱无章并没有按照年纪倒序 示例代码如下 import java.util.Comparator; import java.util.List; import java.util.Map; import java.util.stream.Collectors; import java.util.stream.Stream;public class GroupBySort {public static void main(String[] args) {//构造数据ListStudent students Stream.of(new Student(a, 15),new Student(b, 13),new Student(c, 11),new Student(d, 18),new Student(e, 20)).collect(Collectors.toList());//按照年纪倒序并分组MapInteger, ListStudent studentMap students.stream().sorted(Comparator.comparing(Student::getAge).reversed()).collect(Collectors.groupingBy(Student::getAge));System.out.println(studentMap);} }class Student {private String name;private Integer age;}排查原因 查看java.util.stream.Collectors类的groupingBy方法源码如下 //一个入参 public static T, K CollectorT, ?, MapK, ListTgroupingBy(Function? super T, ? extends K classifier) {return groupingBy(classifier, toList());}//两个入参 public static T, K, A, DCollectorT, ?, MapK, D groupingBy(Function? super T, ? extends K classifier,Collector? super T, A, D downstream) {return groupingBy(classifier, HashMap::new, downstream);}//三个入参最终的方法 public static T, K, D, A, M extends MapK, DCollectorT, ?, M groupingBy(Function? super T, ? extends K classifier,SupplierM mapFactory,Collector? super T, A, D downstream) {...}在第二个方法中我们可知groupingBy接口调用自己的方法时创建了一个 HashMap HashMap::new。因为hashMap,是无序的是根据key的hashcode进行hash然后放入对应的地方。所以在按照一定顺序put进HashMap中然后遍历出HashMap的顺序跟put的顺序不同。所以才出现了上述的问题。 解决方案 因为这三个方法都是public类型的我们可以直接外部调用而入参给一个有序的Map就可以了我选择的是LinkedHashMap。 文章最后面会简单介绍LinkedHashMap 示例代码如下 //按照年纪倒序并分页MapInteger, ListStudent studentMap students.stream().sorted(Comparator.comparing(Student::getAge).reversed()).collect(Collectors.groupingBy(Student::getAge, LinkedHashMap::new, Collectors.toList()));结果如下 LinkedHashMap的介绍 LinkedHashMap有序HashMap无序LinkedHashMap是HashMap的子类内部维护了一个双向链表保证元素插入时候的顺序其增删改查的时间复杂度为O(1)LinkedHashMap的节点占用了更多的空间包括指向前一个节点的指针before和指向后一个节点的after指针LinkedHashMap默认使用插入顺序进行遍历也可以使用访问顺序进行遍历。将accessOrder置为true即可
http://www.yutouwan.com/news/181154/

相关文章:

  • 建设一个购物网站多少钱专门做外卖的网站
  • 南翔企业网站开发建设wordpress自动创建子站
  • 定制网站建设多少钱小白如何免费做网站
  • 免费网站建站手机seo营销外包
  • 哪种企业适合做网站动漫设计专升本考什么
  • dedecms的网站放在哪个文件夹里大连模板网站制作报价
  • wordpress 网站主题苏州企业网站公司都有哪些
  • 网站上怎么做微信支付接口网站标题改动
  • 南宁南宁做网站郑州企业网站排名优化哪家好
  • 个人网站鉴赏营销型网站建设的选择方式
  • 天津网站专业制作制作流程图软件
  • 3d云设计网站开发西安有什么好玩的地方景点推荐
  • 门户网站ui设计课程资源网站的建设
  • 公司网站开发策划北京建设信源资讯有限公司
  • 个人网站建设代码揭阳市php网站开发找工作
  • 中企动力网站方案什么是口碑营销
  • 建设彩票网站制作上海建设工程安全质量监督总站网站
  • 有后台的网站郑州自建网站
  • 网站建设英文合同潍坊模板建站平台
  • 网站建设服务宗旨青岛新网站设计公司
  • c 网站开发数据库做网站策划容易遇到哪些问题
  • 重庆建设招标造价信息网站虚拟主机免费云服务器
  • 泉州做外贸网站南昌网站建设公司如何
  • 做vue用哪个网站顺德销售型网站建设
  • 网站收录的页面被k出来东莞网络科技营销
  • 中国建设工程安全管理协会网站shopnc商城系统
  • 免费搭建微信网站百度搜题网页版入口
  • 怎么编写网站实验室建设网站
  • 阿里云做的网站怎么样网站建设必须要备案吗
  • 温州微网站制作多少钱中国最权威的网站排名