Piotr Szczepanik:
Necesito poner en práctica el método que toma un arroyo y entero y devuelve la lista de cadenas. La lista debe ser agrupados de acuerdo a los números int - ordenado de mayor a menor, y regresar sólo números
Quiero hacerlo en una sola corriente y obtener algo como esto:
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"
¿Me podría ayudar con esta corriente? No sé si debo utilizar el filtro + soreted. O tal vez foreach? Esto Comparator.naturalOrder
es sólo temporal.
SDJ:
Los métodos de utilidad en la interfaz Comparator
son muy útiles para ayudar con estos tipos de operaciones:
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());
}