java list中条件查询
时间: 2023-09-26 20:05:36 浏览: 40
你可以使用 Java 8 的 Stream API 来进行条件查询。以下是一个示例代码:
假设你有一个包含 Person 对象的 List:
```java
List<Person> people = new ArrayList<>();
people.add(new Person("Alice", 25));
people.add(new Person("Bob", 30));
people.add(new Person("Charlie", 35));
```
现在你想要查询年龄大于等于 30 的人:
```java
List<Person> result = people.stream()
.filter(p -> p.getAge() >= 30)
.collect(Collectors.toList());
```
这个代码使用了 `filter` 方法来过滤满足条件的元素,然后使用 `collect` 方法将结果收集到一个新的 List 中。你可以根据自己的需求修改这个示例代码来适应你的应用场景。
相关问题
java实现多条件list查询
在 Java 中实现多条件 List 查询可以通过使用 Java 8 的 Stream API 和 Lambda 表达式来完成。下面是一个示例代码:
假设我们有一个 Person 类,它包含 name、age 和 gender 三个属性:
```java
public class Person {
private String name;
private int age;
private String gender;
public Person(String name, int age, String gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getGender() {
return gender;
}
}
```
现在我们有一个 List,它包含多个 Person 对象:
```java
List<Person> personList = Arrays.asList(
new Person("Alice", 25, "female"),
new Person("Bob", 30, "male"),
new Person("Charlie", 18, "male"),
new Person("David", 40, "male"),
new Person("Eve", 28, "female")
);
```
现在我们需要查询出所有 age 大于 20、gender 为 female 的 Person 对象。我们可以使用 Stream API 和 Lambda 表达式来实现:
```java
List<Person> result = personList.stream()
.filter(p -> p.getAge() > 20)
.filter(p -> "female".equals(p.getGender()))
.collect(Collectors.toList());
```
在上面的代码中,首先我们通过 `stream()` 方法将 List 转换成一个 Stream 对象。然后使用 `filter()` 方法对 Stream 对象进行过滤,筛选出 age 大于 20 的 Person 对象。接着再次使用 `filter()` 方法进行过滤,筛选出 gender 为 female 的 Person 对象。最后,使用 `collect(Collectors.toList())` 方法将筛选出来的 Person 对象转换成 List 并返回。
通过这种方式,我们可以轻松地实现多条件 List 查询。
java以list为条件查询其他字段
可以使用 Java Stream API 来对 List 进行条件查询。假设我们有一个包含多个对象的 List,每个对象都有不同的属性,我们想要根据某个属性进行查询,可以使用 Stream 的 filter 方法来实现。
例如,我们有一个 Person 类,它有 name 和 age 两个属性,我们想要根据 name 属性查询符合条件的 Person 对象,可以这样写:
```java
List<Person> personList = new ArrayList<>();
// 添加 person 对象到 personList 中...
String name = "John";
List<Person> result = personList.stream()
.filter(person -> person.getName().equals(name))
.collect(Collectors.toList());
```
这个代码段将返回一个 List,其中包含所有 name 属性为 "John" 的 Person 对象。我们可以根据需要修改 filter 方法的 lambda 表达式来适应不同的查询条件。