java使用jdk8表达式获取list存放对象的元素变成list返回
时间: 2023-08-18 22:06:13 浏览: 93
假设你有一个存放对象的列表,每个对象都有一个属性 `name`,你希望从列表中获取 `name` 属性等于某个特定值的对象组成的列表。可以使用 Java 8 的 Stream API 来实现该功能。具体代码如下:
```java
List<Person> personList = Arrays.asList(new Person("Alice"), new Person("Bob"), new Person("Charlie"));
String targetName = "Bob";
List<Person> result = personList.stream()
.filter(person -> person.getName().equals(targetName))
.collect(Collectors.toList());
System.out.println(result);
```
该代码中,首先将一个存放对象的列表实例化为数组。然后,我们定义了一个变量 `targetName`,表示我们要获取的目标对象的 `name` 属性值。接下来,我们使用 `stream()` 方法将列表转换为一个流。然后,我们使用 `filter()` 方法过滤出其中 `name` 属性等于 `targetName` 的对象。最后,我们使用 `collect()` 方法将过滤结果收集到一个列表中,最终返回包含一个元素的列表。
注意,上述代码中使用了 Lambda 表达式 `person -> person.getName().equals(targetName)`,它的含义是“如果对象 `person` 的 `name` 属性值等于 `targetName`,则返回 true”。`filter()` 方法会使用该 Lambda 表达式筛选出符合条件的对象。
另外,需要注意的是,上述代码中使用了 Collectors 类的静态方法 `toList()` 来将筛选结果收集到一个列表中。如果需要转换成其他集合类型,可以使用其他 Collectors 类的静态方法。
阅读全文