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

时间:2019-07-04 18:08:17

标签: java collections java-stream

我需要实现一个采用Stream和整数并返回字符串列表的方法。列表应根据整数进行分组-从高到低的顺序排列,并且仅返回数字

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

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"

您能帮我忙吗?我不知道是否应该使用filter + soreted。也许是foreach? Comparator.naturalOrder只是暂时的。

1 个答案:

答案 0 :(得分:2)

接口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());
}