通过通过Stream类中得 of() 静态方法获取流不能排序的问题

本文探讨了在Java中使用Stream.of()和Arrays.asList()创建流并进行排序时遇到的不同结果。重点在于理解Stream.of()不支持直接排序的原因,即基本类型包装类的Comparable实现。解决方案是确保实体类实现Comparable接口并提供具体的比较方法。示例代码展示了两种方法的执行结果,强调了Comparable接口在排序过程中的关键作用。
摘要由CSDN通过智能技术生成

通过通过Stream类中得 of() 静态方法获取流

List<String> streamList = Stream.of("8", "4", "5", "9").collect(Collectors.toList());
System.out.println(streamList);
List<String> streamListNew = streamList.stream().sorted().collect(Collectors.toList());
System.out.println(streamListNew);

执行结果,不能排序

使用Arrays.asList()

List<String> streamList = Arrays.asList("1","0","2");
System.out.println(streamList);
List<String> streamListNew = streamList.stream().sorted().collect(Collectors.toList());
System.out.println(streamListNew);

执行结果成功排序

原因:基本类型的包装类实现了Comparable,如果使用Stream类中得 of(),实体类就不能转换成Comparable,继承抽象方法后需要具体实现方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值