使用java8我们如何从第二个元素开始到最后一个元素排序?
list.stream().filter(student -> student.getAge()!=15).sorted(Comparator.comparing(student->student.getAge())).collect(Collectors.toList());
最终排序列表应包含所有元素,包括第一个。
我试过上面的代码片段:
在这里我不想触摸第一个元素。上面的代码是从第二个元素到最后一个元素排序。问题是我没有在输出中获得第一个元素(年龄 = 15)。
如果我不应用过滤器,它将对所有元素进行排序,并且我将丢失第一个元素,这不应该发生。
请帮我解决这个问题。提前致谢。
最佳答案
List<Student> result = Stream.concat(
list.stream().findFirst().map(Stream::of).orElse(Stream.empty()),
list.stream().skip(1).sorted(Comparator.comparing(Student::getAge)))
.collect(Collectors.toList());
System.out.println(result);
关于java-8 - 使用java8我们如何从第二个元素开始到最后一个元素排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44461937/