Java Stream 模糊匹配List对象的某个值
在Java编程中,我们经常需要对集合进行操作并进行特定的筛选。有时候,我们可能需要对List中的对象进行模糊匹配,即根据某个字段的部分内容来筛选出符合条件的对象。这时候,Java Stream就可以派上用场。
Stream简介
Java 8引入了Stream API,使得我们可以更加便捷地对集合进行操作。Stream提供了一种函数式编程的方式来处理数据,可以实现过滤、转换、聚合等操作。
示例代码
假设我们有一个名为Person
的类,其中包含姓名和年龄两个字段。现在我们有一个List<Person>,需要根据姓名进行模糊匹配。下面是我们如何使用Stream来实现这个功能:
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Person> people = Arrays.asList(
new Person("Alice", 25),
new Person("Bob", 30),
new Person("Cathy", 22)
);
String keyword = "A";
List<Person> result = people.stream()
.filter(person -> person.getName().contains(keyword))
.toList();
result.forEach(person -> System.out.println(person.getName() + " - " + person.getAge()));
}
}
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对象的List,并定义了一个关键词keyword
。然后使用Stream的filter
方法对List中的每个Person对象进行筛选,只留下姓名包含关键词的对象。最后,我们将结果打印出来。
关系图
erDiagram
Person {
String name
int age
}
结尾
通过上述示例,我们看到了如何使用Java Stream来实现对List对象的模糊匹配操作。Stream提供了一种更加简洁和优雅的方式来处理集合操作,使得代码更加易读和易维护。希望本文对你有所帮助!