Java Stream 过滤查找第一个匹配元素:详解与示例
这段代码使用 Java Stream API 对 ArrayList 进行过滤操作,并查找第一个满足条件的元素。代码的含义如下:
arrayList.stream():将 ArrayList 转换为 Stream,以便使用 Stream API 进行操作。filter(s -> s.getId().intValue() == pepoler.getId().intValue()):使用 filter() 方法对 Stream 进行过滤,只保留满足条件的元素。条件是 s 对象的 id 属性和 pepoler 对象的 id 属性必须相等。findFirst():从过滤后的 Stream 中查找第一个符合条件的元素。orElse(null):如果 findFirst() 方法没有找到符合条件的元素,则返回 null。
因此,这段代码的功能是:在 ArrayList 中查找第一个 id 属性与 pepoler 对象的 id 属性相同的元素,如果找到则将其赋值给变量 p,否则将 null 赋值给变量 p。
示例:
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Person> people = new ArrayList<>();
people.add(new Person(1, "Alice"));
people.add(new Person(2, "Bob"));
people.add(new Person(3, "Charlie"));
Person pepoler = new Person(2, "Bob");
Person p = people.stream()
.filter(s -> s.getId() == pepoler.getId())
.findFirst()
.orElse(null);
System.out.println(p); // 输出:Person{id=2, name='Bob'}
}
}
class Person {
private int id;
private String name;
public Person(int id, String name) {
this.id = id;
this.name = name;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
@Override
public String toString() {
return "Person{id=" + id + ", name='" + name + "'}";
}
}
这段代码首先创建了一个包含三个 Person 对象的 ArrayList,然后创建一个名为 pepoler 的 Person 对象。最后,使用 Stream API 查找 ArrayList 中第一个 id 属性与 pepoler 对象的 id 属性相同的元素,并将结果输出。
结论:
Java Stream API 提供了一种简洁、高效的方式来过滤和查找集合中的元素。使用 filter() 和 findFirst() 方法可以轻松地找到第一个满足特定条件的元素。
原文地址: https://www.cveoy.top/t/topic/pk9v 著作权归作者所有。请勿转载和采集!