JAVA中使用Stream流实现百分比排序

一、Stream流是什么?

Stream流是Java 8中的一个新特性,它提供了一种处理集合和数组的方式。Stream流可以让我们以一种更加简洁、高效、可读性更强的方式来处理数据。Stream流可以用于过滤、映射、排序、聚合等操作,它可以让我们避免使用循环和条件语句来处理数据,从而让代码更加简洁易懂。Stream流的操作可以分为中间操作和终止操作两种类型,中间操作返回的是一个新的Stream流,终止操作返回的是一个非Stream类型的结果。Stream流的处理是惰性求值的,只有在执行终止操作时才会开始处理数据。

流(Stream)是一种基于支持一次性处理数据的数据源的元素序列,流只能使用一次。

流的设计初衷是为了支持函数式编程,它的目的是将数据处理和数据存储分离开来,使得数据处理更加灵活和高效。因此,流的元素只是在流中传递的临时数据,它们并不是永久存储在内存中的数据。当流的元素被消费后,它们就会被释放,不能再次使用.

如果需要对同一个数据集进行多次不同的操作,可以使用流的中间操作方法来构建多个流管道,每个流管道都可以对流进行不同的操作,并返回一个新的流。这样就可以对同一个数据集进行多次操作,而不需要重新获取数据集。

二、代码示例

List<Peson> pesonList = new ArrayList<>();
        Peson peson = new Peson();
        peson.setXiao("98.9%");
        peson.setKnag("kag");
        peson.setAge(1);

        Peson peson1 = new Peson();
        peson1.setXiao("97.9%");
        peson1.setKnag("kag");
        peson1.setAge(2);

        Peson peson2 = new Peson();
        peson2.setXiao("99.9%");
        peson2.setKnag("kag");
        peson2.setAge(3);

        Peson peson3 = new Peson();
        peson3.setXiao("99.9%");
        peson3.setKnag("kag");
        peson3.setAge(3);

        pesonList.add(peson);
        pesonList.add(peson1);
        pesonList.add(peson2);
        pesonList.add(peson3);
        System.out.println("排序前->"+pesonList);
       pesonList.sort(((o1, o2) -> {
           Double d1 = Double.parseDouble(o1.getXiao().split("%")[0]);
           Double d2 = Double.parseDouble(o2.getXiao().split("%")[0]);
           //降序
           return d2.compareTo(d1);
           //升序
           return d1.compareTo(d2);
       }));
        System.out.println("排序后->"+pesonList);
    }

结果:

排序前->[Peson{xiao='98.9%', knag='kag', age=1}, Peson{xiao='97.9%', knag='kag', age=2}, Peson{xiao='99.9%', knag='kag', age=3}, Peson{xiao='99.9%', knag='kag', age=3}]
排序后->[Peson{xiao='99.9%', knag='kag', age=3}, Peson{xiao='99.9%', knag='kag', age=3}, Peson{xiao='98.9%', knag='kag', age=1}, Peson{xiao='97.9%', knag='kag', age=2}]

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值