java stream流排序
时间: 2023-10-26 22:49:10 浏览: 81
可以通过使用Java 8提供的Stream API中的sorted()方法进行排序。例如,可以通过以下方式对一个List<String>中的字符串进行自然排序:
List<String> list = Arrays.asList("John", "Jane", "Adam", "Eva");
List<String> sortedList = list.stream().sorted().collect(Collectors.toList());
这将返回一个按字母顺序排序的字符串列表,即 ["Adam", "Eva", "Jane", "John"] 。如果需要按照特定的排序规则进行排序,则可以使用sorted()方法的重载方法,将一个Comparator<T>对象作为参数传递进去。例如,可以通过以下方式根据字符串长度对List<String>中的字符串进行排序:
List<String> list = Arrays.asList("John", "Jane", "Adam", "Eva");
List<String> sortedList = list.stream().sorted((str1, str2) -> Integer.compare(str1.length(), str2.length())).collect(Collectors.toList());
这将返回一个按照字符串长度排序的字符串列表,即 ["Adam", "Eva", "John", "Jane"] 。
相关问题
javastream流排序
Java 8引入的Stream API提供了一种方便的方式来对集合进行排序。可以使用sorted()方法对流进行自然排序,或者使用sorted(Comparator<T> comparator)方法对流进行自定义排序。
下面是一个示例代码,演示如何对一个字符串列表进行排序:
```java
List<String> list = Arrays.asList("banana", "apple", "pear", "orange");
List<String> sortedList = list.stream().sorted().collect(Collectors.toList());
System.out.println(sortedList);
```
输出结果为:[apple, banana, orange, pear]
如果要对一个对象列表进行排序,则需要指定排序的属性,可以使用Comparator.comparing()方法来指定。
假设有一个Person类:
```java
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
```
现在有一个Person对象列表:
```java
List<Person> people = Arrays.asList(
new Person("John", 30),
new Person("Mary", 25),
new Person("Bob", 20)
);
```
可以使用如下代码对该列表按照年龄进行排序:
```java
List<Person> sortedPeople = people.stream()
.sorted(Comparator.comparing(Person::getAge))
.collect(Collectors.toList());
System.out.println(sortedPeople);
```
输出结果为:
```
[Person{name='Bob', age=20}, Person{name='Mary', age=25}, Person{name='John', age=30}]
```
以上就是Java Stream流排序的示例代码。
javaStream流排序
Java 8 中提供了 Stream API,可以方便地对集合进行排序。下面是一个简单的示例:
假设有一个包含整数的 List,我们可以使用 Stream API 中的 sorted 方法对其进行排序:
```java
List<Integer> numbers = Arrays.asList(2, 4, 1, 3, 5);
List<Integer> sorted = numbers.stream().sorted().collect(Collectors.toList());
System.out.println(sorted); // 输出 [1, 2, 3, 4, 5]
```
如果需要按照自定义规则进行排序,可以使用 sorted 方法的重载版本,传入一个 Comparator 对象:
```java
List<String> words = Arrays.asList("apple", "banana", "cherry", "date");
List<String> sorted = words.stream().sorted(Comparator.comparing(String::length)).collect(Collectors.toList());
System.out.println(sorted); // 输出 [date, apple, banana, cherry]
```
这个例子中,我们按照字符串长度进行排序。可以看到,sorted 方法的参数是一个 Comparator 对象,该对象定义了排序规则,这里使用了 Java 8 中的方法引用语法,即 String::length,表示按照字符串长度进行比较。
阅读全文