list排序 java8
时间: 2023-07-21 11:01:19 浏览: 52
使用Java 8 Stream对List进行排序有几种方法,以下是其中两种常见的方式:
1. 使用Stream的sorted()方法进行排序:
```java
List<Integer> numbers = Arrays.asList(5, 4, 3, 2, 1);
List<Integer> sortedNumbers = numbers.stream()
.sorted()
.collect(Collectors.toList());
```
上面的代码将一个Integer类型的List按照升序排序,并将排序后的结果存储在一个新的List中。可以将sorted()方法中传入一个Comparator对象来指定自定义的排序规则。
2. 使用Collections.sort()方法进行排序:
```java
List<Integer> numbers = Arrays.asList(5, 4, 3, 2, 1);
Collections.sort(numbers);
```
上面的代码使用Collections.sort()方法对List进行排序。需要注意的是,这会直接修改原始List的顺序,而不是创建一个新的List。同样可以传入一个Comparator对象来指定自定义的排序规则。
这些方法可以应用于任何实现了List接口的类,包括ArrayList和LinkedList等。
相关问题
java8list排序方法
在Java 8中,List接口提供了sort方法来对列表进行排序。sort方法使用了Java 8的新特性——函数式接口Comparator来进行排序。
下面是Java 8中List排序的几种常见方法:
1. 使用Collections.sort()方法:
```java
List<Integer> list = new ArrayList<>();
// 添加元素到列表
Collections.sort(list);
```
2. 使用List的sort()方法:
```java
List<Integer> list = new ArrayList<>();
// 添加元素到列表
list.sort(Comparator.naturalOrder());
```
3. 使用自定义Comparator进行排序:
```java
List<Integer> list = new ArrayList<>();
// 添加元素到列表
list.sort((a, b) -> a.compareTo(b));
```
4. 使用Comparator的静态方法进行排序:
```java
List<Integer> list = new ArrayList<>();
// 添加元素到列表
list.sort(Comparator.comparingInt(Integer::intValue));
```
这些方法都可以对List中的元素进行排序,你可以根据具体需求选择适合的方法。
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()`方法会直接修改原始列表,如果不希望改变原始列表,可以先创建一个副本进行排序。