要解决仅使用不同ArrayList
中的一个字段搜索包含多个字段的ArrayList
的问题,我们需要明确两个ArrayList
的结构,并确定如何根据一个字段来搜索另一个ArrayList
。以下是一个详细的解答:
ArrayList
可以方便地添加、删除和查找元素。ArrayList
的大小可以根据需要动态调整。ArrayList
提供了较好的性能。ArrayList
,一个包含单个字段的对象,另一个包含多个字段的对象。假设我们有两个ArrayList
:
ArrayList<Person>
包含多个字段(如id
, name
, age
)。ArrayList<Integer>
包含需要搜索的字段(如id
)。import java.util.ArrayList;
import java.util.List;
class Person {
int id;
String name;
int age;
public Person(int id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person{id=" + id + ", name='" + name + "', age=" + age + "}";
}
}
public class Main {
public static void main(String[] args) {
List<Person> people = new ArrayList<>();
people.add(new Person(1, "Alice", 30));
people.add(new Person(2, "Bob", 25));
people.add(new Person(3, "Charlie", 35));
List<Integer> searchIds = new ArrayList<>();
searchIds.add(2);
searchIds.add(3);
List<Person> result = searchPersonsById(people, searchIds);
System.out.println(result);
}
public static List<Person> searchPersonsById(List<Person> people, List<Integer> ids) {
List<Person> result = new ArrayList<>();
for (Person person : people) {
if (ids.contains(person.id)) {
result.add(person);
}
}
return result;
}
}
Person
类,包含id
, name
, age
字段,并提供了一个构造函数。ArrayList
,一个用于存储Person
对象,另一个用于存储需要搜索的id
。searchPersonsById
方法遍历people
列表,检查每个Person
对象的id
是否在searchIds
列表中,如果在则将其添加到结果列表中。contains
方法可能会导致性能问题。可以使用HashSet
来提高查找效率。contains
方法可能会导致性能问题。可以使用HashSet
来提高查找效率。通过以上方法,可以有效地根据一个字段搜索包含多个字段的ArrayList
,并解决可能遇到的问题。
领取专属 10元无门槛券
手把手带您无忧上云