以下是一个示例代码,演示了如何按复杂对象字段进行查询:
import java.util.ArrayList;
import java.util.List;
class Person {
private String name;
private int age;
private Address address;
// 构造函数和getter/setter方法省略
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
", address=" + address +
'}';
}
}
class Address {
private String city;
private String street;
// 构造函数和getter/setter方法省略
@Override
public String toString() {
return "Address{" +
"city='" + city + '\'' +
", street='" + street + '\'' +
'}';
}
}
public class Main {
public static void main(String[] args) {
List people = new ArrayList<>();
// 添加一些测试数据
people.add(new Person("Alice", 25, new Address("New York", "123 Main St")));
people.add(new Person("Bob", 30, new Address("Chicago", "456 Elm St")));
people.add(new Person("Charlie", 35, new Address("New York", "789 Oak St")));
// 查询居住在纽约的人员
List filteredPeople = new ArrayList<>();
for (Person person : people) {
if (person.getAddress().getCity().equals("New York")) {
filteredPeople.add(person);
}
}
// 打印查询结果
for (Person person : filteredPeople) {
System.out.println(person);
}
}
}
在上述示例代码中,我们定义了一个Person
类和一个Address
类,Person
类包含一个Address
类型的字段。我们创建了一个List
来存储Person
对象,并向其中添加了一些测试数据。
然后,我们使用一个循环来遍历people
列表,并使用.getAddress().getCity()
来获取每个人的居住城市字段。如果该字段等于我们想要查询的值(在这里是"New York"),我们就将该人员添加到filteredPeople
列表中。
最后,我们再次使用循环来打印查询结果。在这个示例中,我们只查询了居住在纽约的人员,但你可以根据自己的需求修改查询条件。
上一篇:按复选框筛选
下一篇:按复杂性对Big O函数进行排名