java list对象排序 使用 Stream 流排序 字段属性为string
时间: 2024-03-26 10:40:11 浏览: 122
可以使用Java 8提供的Stream API对List对象进行排序,具体实现如下:
假设有一个名为list的List<String>对象,需要按照某个字段属性进行排序,可以使用如下代码:
```java
list = list.stream().sorted(Comparator.comparing(String::toString)).collect(Collectors.toList());
```
其中,Comparator.comparing()方法可以根据指定字段属性进行排序,这里使用String::toString表示按照字符串本身进行排序。最后使用collect(Collectors.toList())方法将Stream流转换为List对象。
需要注意的是,上述代码会改变原有的List对象,如果不想改变原有的List对象,可以先将其复制一份再进行排序。
相关问题
java8stream流将list中对象的某个字段排序
您可以使用Java 8的Stream流来对List中的对象按照某个字段进行排序。首先,您需要使用`sorted`方法来指定排序规则,然后使用`Comparator`来比较对象的字段值。
以下是一个例子,假设我们有一个包含Person对象的List,并且我们想按照年龄字段进行排序:
```java
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<Person> personList = ... // 假设有一个Person对象的List
List<Person> sortedList = personList.stream()
.sorted(Comparator.comparingInt(Person::getAge))
.collect(Collectors.toList());
// 排序后的List
for (Person person : sortedList) {
System.out.println(person.getName() + " - " + person.getAge());
}
}
}
class Person {
private String name;
private int age;
// 构造函数、getter和setter省略
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
```
在上述代码中,我们使用`sorted`方法来指定按照年龄字段排序,通过`Comparator.comparingInt(Person::getAge)`实现。最后,我们使用`collect`方法将排序后的结果收集到一个新的List中。
请注意,这里假设Person类具有相应的构造函数和getter方法。您需要根据实际情况进行调整。
java stream获取list中字段属性为long的list
在Java中,你可以使用Stream API来过滤出List中的元素,如果它们的某个字段的值为Long类型。假设我们有一个Person类,它有一个名为age的Long类型的字段,你可以这样做:
```java
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
class Person {
private Long age;
// getters and setters...
public Long getAge() {
return age;
}
}
public class Main {
public static void main(String[] args) {
List<Person> people = new ArrayList<>();
people.add(new Person().setAge(25L));
people.add(new Person().setAge(30L));
people.add(new Person());
// 使用Stream API筛选出年龄字段为Long的列表
List<Long> longAges = people.stream()
.filter(Person::getAge != null && Person::getAge instanceof Long)
.map(Person::getAge)
.collect(Collectors.toList());
System.out.println(longAges); // 输出:[25, 30]
阅读全文
相关推荐
















