list对象数组过滤对象的一个属性出来组成新的list,java
时间: 2023-08-22 16:06:38 浏览: 83
可以使用 Java 8 中的 Stream API 来完成这个任务。假设我们有一个名为 `list` 的 `List` 对象数组,每个对象都有一个名为 `property` 的属性,我们想要将这些属性的值过滤出来并组成一个新的 `List` 对象数组,可以使用以下代码:
```java
List<String> filteredList = list.stream()
.map(obj -> obj.getProperty())
.collect(Collectors.toList());
```
上面的代码中,`list.stream()` 将 `List` 对象数组转换为一个 `Stream` 对象,`.map(obj -> obj.getProperty())` 将每个对象的 `property` 属性提取出来,`.collect(Collectors.toList())` 将提取出来的属性值收集到一个新的 `List` 对象中。
最终得到的 `filteredList` 就是过滤出来的属性值组成的新的 `List` 对象数组。
相关问题
list数组过滤出对象数组的某一个属性组成新的list数组java
假设我们有一个对象数组 `Person[]`,其中每个 `Person` 对象都有一个 `name` 属性,我们想要从中过滤出所有的 `name` 属性,然后组成一个新的字符串数组 `String[]`,可以使用 Java 8 的流操作来实现:
```java
Person[] persons = new Person[] {new Person("Alice"), new Person("Bob"), new Person("Charlie")};
String[] names = Arrays.stream(persons)
.map(Person::getName)
.toArray(String[]::new);
```
上述代码中,`Arrays.stream(persons)` 将 `Person` 对象数组转换为流,`.map(Person::getName)` 操作将每个 `Person` 对象映射为其 `name` 属性,最后使用 `.toArray(String[]::new)` 将结果转换为字符串数组。
如果你使用的是 Java 7 或更早版本,可以使用常规的 for 循环来实现:
```java
Person[] persons = new Person[] {new Person("Alice"), new Person("Bob"), new Person("Charlie")};
String[] names = new String[persons.length];
for (int i = 0; i < persons.length; i++) {
names[i] = persons[i].getName();
}
```
这将遍历 `Person` 对象数组并将每个 `Person` 对象的 `name` 属性存储在新的字符串数组中。
java对list对象数组过滤其中一个属性转成新的list数组
可以使用Java 8中的Stream API来实现这个过滤转换操作。以下是一个示例代码:
假设有一个包含Person对象的List,每个Person对象都有一个name属性和age属性。现在我们要将所有年龄大于等于18岁的Person对象的name属性转换成一个新的List<String>对象:
```
List<Person> persons = new ArrayList<>();
// 假设persons中已经添加了多个Person对象
List<String> names = persons.stream()
.filter(p -> p.getAge() >= 18) // 过滤出年龄大于等于18岁的Person对象
.map(Person::getName) // 转换为name属性
.collect(Collectors.toList()); // 收集到一个新的List对象中
// 输出新的List对象
System.out.println(names);
```
上述代码运行结果为:包含所有年龄大于等于18岁的Person对象的name属性的List对象。
阅读全文