ストリームと整数 - 2つのパラメータを取得するメソッドを作成する方法

ピョートル・スチェパーニク:

私は、ストリームを受け取り、整数と文字列のリストを返すメソッドを実装する必要があります。リストには、int型の番号に従ってグループ化されなければならない - 最低に最高の注文と数字だけを返します

私は1つのストリームでそれを行うと、このような何かを取得したいです:

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"

あなたはこのストリームで私を助けてもらえますか?私はsoretedフィルタ+を使用するかどうか私は知りません。それともforeachの?これはComparator.naturalOrder単に一時的なものです。

SDJ:

インタフェースのユーティリティメソッドは、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());
}

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=239483&siteId=1