java8 list 排序
时间: 2023-07-21 07:30:40 浏览: 42
可以使用Java8的Lambda表达式和Comparator接口对List进行排序,示例代码如下:
假设有一个List<String> list,需要按照字符串长度进行升序排序:
```
List<String> list = Arrays.asList("apple", "banana", "pear", "orange", "grape");
list.sort(Comparator.comparingInt(String::length));
```
如果需要进行降序排序,只需要在comparingInt方法后面调用reversed方法即可:
```
list.sort(Comparator.comparingInt(String::length).reversed());
```
如果需要按照多个条件进行排序,可以通过链式调用Comparator的thenComparing方法实现,示例代码如下:
```
List<Person> list = Arrays.asList(new Person("Tom", 25), new Person("Jack", 20), new Person("Alice", 30));
list.sort(Comparator.comparing(Person::getAge).thenComparing(Person::getName));
```
以上代码将按照年龄升序排序,如果年龄相同则按照姓名升序排序。
相关问题
java8 list排序
在Java 8中,可以使用`List.sort()`方法对列表进行排序。以下是一些示例代码:
1. 对整数列表进行升序排序:
```java
List<Integer> numbers = Arrays.asList(3, 1, 4, 1, 5, 9, 2, 6, 5);
numbers.sort(Comparator.naturalOrder());
```
2. 对字符串列表进行按字母顺序排序:
```java
List<String> strings = Arrays.asList("c", "a", "b");
strings.sort(Comparator.naturalOrder());
```
3. 对自定义对象列表进行排序,假设对象有一个属性`name`:
```java
class Person {
private String name;
// getter and setter methods
// constructor
// other methods
}
List<Person> persons = new ArrayList<>();
persons.add(new Person("John"));
persons.add(new Person("Alice"));
persons.add(new Person("Bob"));
persons.sort(Comparator.comparing(Person::getName));
```
这些示例都使用了`Comparator`来指定排序的方式。`Comparator.naturalOrder()`用于升序排序,`Comparator.reverseOrder()`用于降序排序。`Comparator.comparing()`方法可根据对象的某个属性进行排序。
需要注意的是,`sort()`方法会直接修改原始列表,如果不希望改变原始列表,可以先创建一个副本进行排序。
java 8list排序
在 Java 8 中,可以使用 `List.sort()` 方法对列表进行排序。下面是一个简单的例子:
```java
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Integer> numbers = new ArrayList<>();
numbers.add(5);
numbers.add(2);
numbers.add(8);
numbers.add(1);
numbers.add(10);
numbers.sort((a, b) -> a - b);
System.out.println(numbers);
}
}
```
在上面的例子中,我们创建了一个 `List<Integer>` 对象 `numbers`,并添加了一些整数元素。然后,我们使用 `numbers.sort()` 方法并传入一个 lambda 表达式作为参数来对列表进行排序。lambda 表达式 `(a, b) -> a - b` 表示按照升序对元素进行排序。最后,我们打印排序后的列表。
输出结果为:`[1, 2, 5, 8, 10]`
请注意,`List.sort()` 方法会在原地修改列表,而不是创建一个新的排序后的列表。