获取list对象中,某个字段存在另一个list<String>中的,所有对象,用java代码回答
时间: 2024-02-12 20:08:08 浏览: 68
好的,针对您的问题,以下是 Java 代码实现的示例:
```java
public static List<Map<String, Object>> findObjectsByField(List<Map<String, Object>> list1, List<String> list2, String field) {
List<Map<String, Object>> result = new ArrayList<>();
for (Map<String, Object> obj : list1) {
if (list2.contains((String) obj.get(field))) {
result.add(obj);
}
}
return result;
}
```
其中,list1为主list,list2为另一个list,field为需要匹配的字段。
调用示例:
```java
List<Map<String, Object>> list1 = new ArrayList<>();
Map<String, Object> obj1 = new HashMap<>();
obj1.put("name", "A");
obj1.put("age", 20);
Map<String, Object> obj2 = new HashMap<>();
obj2.put("name", "B");
obj2.put("age", 25);
Map<String, Object> obj3 = new HashMap<>();
obj3.put("name", "C");
obj3.put("age", 30);
list1.add(obj1);
list1.add(obj2);
list1.add(obj3);
List<String> list2 = new ArrayList<>();
list2.add("A");
list2.add("C");
List<Map<String, Object>> result = findObjectsByField(list1, list2, "name");
System.out.println(result);
```
输出结果为:
```
[{name=A, age=20}, {name=C, age=30}]
```
同样假设您要查找的字段为name,需要匹配的值存在于list2中。如果您的需求不同,可以根据实际情况进行调整。
阅读全文