【问题标题】:How to create method which get two parameters - stream and integer如何创建获取两个参数的方法 - 流和整数
【发布时间】:2019-07-04 18:08:17
【问题描述】:

我需要实现采用 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 只是临时的。

【问题讨论】:

    标签: java collections java-stream


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-14
      • 2016-02-07
      • 2019-05-03
      • 2016-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多