Java list 对象过滤成list<string>
时间: 2023-10-16 07:10:08 浏览: 36
假设原始的列表中的元素类型为`T`,你可以使用Java 8中的Stream API来过滤并映射为字符串列表。具体来说,你可以使用`filter()`方法来过滤元素,并使用`map()`方法将结果映射为字符串,最后使用`collect()`方法将结果收集到一个新的列表中。下面是一个示例代码:
```java
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Person> persons = new ArrayList<>();
persons.add(new Person("Alice", 25));
persons.add(new Person("Bob", 30));
persons.add(new Person("Charlie", 35));
List<String> names = persons.stream()
.filter(p -> p.getAge() > 30)
.map(Person::getName)
.collect(Collectors.toList());
System.out.println(names); // Output: [Charlie]
}
}
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;
}
}
```
在上面的代码中,我们创建了一个`Person`类来表示人物,其中包含了姓名和年龄两个属性。然后我们创建了一个`persons`列表,用于存储`Person`对象。我们使用`stream()`方法将列表转换为一个流,并使用`filter()`方法过滤出年龄大于30的人,然后使用`map()`方法将结果映射为姓名字符串,最后使用`collect()`方法将结果收集到一个新的列表中,该列表的元素类型为`String`。最终,我们输出了过滤后的姓名列表。