java-8 - 使用java8我们如何从第二个元素开始到最后一个元素排序?

标签 java-8

使用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/

相关文章:

java - 使用流根据另一个列表更新一个列表

java - 双函数 <> 与枚举

java - JavaFX 的 CSS 属性名称的命名

java-8 - Java 8 与 Java 7 集合接口(interface) : self-referential instance

java - 为什么共享可变性不好?

Java 8 流处理不流畅

java - 用不同的值替换长字符串的一部分

java - 在 java 流中使用 .peek() 被认为仅用于调试目的,日志记录是否被视为调试?

java - "Code as Data"是什么意思?

java - 将异常移出 Function/lambda