📅  最后修改于: 2023-12-03 15:31:28.287000             🧑  作者: Mango
在 Java 8 中,可以利用 Lambda 表达式和 Stream API 来快速、简洁地实现对列表中元素按照属性进行筛选的操作。下面分别介绍两种常用的方式。
假设有一个包含若干 Person 对象的列表,每个 Person 对象都有一个唯一的 ID 属性。现在我们需要从列表中查找某个 ID 对应的 Person 对象。
List<Person> personList = new ArrayList<>();
// 假设 personList 中已经添加了若干 Person 对象
int targetId = 1;
Person targetPerson = personList.stream()
.filter(person -> person.getId() == targetId) // 使用 filter 方法过滤元素
.findFirst() // 使用 findFirst 方法返回第一个符合条件的元素
.orElse(null); // 如果列表中不存在符合条件的元素,返回 null
代码解析:
filter
方法过滤出 ID 属性等于目标 ID 的元素。findFirst
方法。orElse
方法。我们也可以通过 Stream API 提供的 findFirst
、findAny
和 orElse
方法来获取列表中符合条件的元素。下面以 findFirst
方法为例:
List<Person> personList = new ArrayList<>();
// 假设 personList 中已经添加了若干 Person 对象
int targetId = 1;
Person targetPerson = personList.stream()
.findFirst(person -> person.getId() == targetId) // 使用 findFirst 方法返回第一个符合条件的元素
.orElse(null); // 如果列表中不存在符合条件的元素,返回 null
代码解析:
findFirst
方法返回第一个符合条件的元素。findFirst
方法中使用 Lambda 表达式作为参数,过滤出 ID 属性等于目标 ID 的元素。orElse
方法。以上就是在 Java 8 中按属性在列表中查找的两种常用方式。它们都十分便捷、简洁,且利用了 Java 8 的新特性,能够提升代码可读性,是现代 Java 开发中不可或缺的技能。