繁体   English   中英

如何创建获取两个参数的方法 - 流和整数

[英]How to create method which get two parameters - stream and integer

我需要实现接受 Stream 和整数并返回字符串列表的方法。 该列表应根据 int 数字分组 - 从高到低排序并仅返回数字

我想在一个流中完成它并得到这样的东西:

public static List<String> groupFunc(Stream<Nums> nums, int pass) {       
  List<Object> myList = nums.filter(s-> s.getScore() >= pass).sorted(Comparator.naturalOrder(s)).collect(Collectors.toList());
}


List<Nums> nums = new ArrayList<Nums>();

        nums.add(new Nums("A", 80));
        nums.add(new Nums("B", 57));
        nums.add(new Nums("C", 21));

        groupFunc(nums.stream(), 50).forEach(System.out::println);

    // should print "A","B"

你能帮我处理这个流吗? 我不知道我是否应该使用过滤器+排序。 或者可能是foreach? 这个Comparator.naturalOrder只是暂时的。

接口Comparator中的实用方法对于帮助处理这些类型的操作非常有用:

public static List<String> groupFunc(Stream<Nums> nums, int pass) {
    return nums
            .filter(s-> s.getScore() >= pass)
            .sorted(Comparator.comparing(Nums::getScore).reversed())
            .map(Nums::getName)
            .collect(Collectors.toList());
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM