Как создать метод, который получает два параметра - поток и целое число - PullRequest
2 голосов
/ 04 июля 2019

Мне нужно реализовать метод, который принимает поток и целое число и возвращает список строк.Список должен быть сгруппирован в соответствии с целыми числами - упорядочены по убыванию и возвращаются только числа

Я хочу сделать это в одном потоке и получить что-то вроде этого:

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 просто временно.

1 Ответ

2 голосов
/ 04 июля 2019

Служебные методы в интерфейсе 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());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...