两个list<HashMap> 差集
时间: 2023-12-05 14:06:03 浏览: 30
可以使用Java 8的Stream API来获取两个列表的差集。以下是一个示例代码:
```java
List<HashMap<String, Object>> list1 = new ArrayList<>();
List<HashMap<String, Object>> list2 = new ArrayList<>();
// 添加一些元素到list1和list2
List<HashMap<String, Object>> difference = list1.stream()
.filter(item -> list2.stream()
.noneMatch(item2 -> item2.equals(item)))
.collect(Collectors.toList());
```
在上面的代码中,我们使用`filter`方法来过滤出在`list1`中存在,但是在`list2`中不存在的元素,然后使用`collect`方法将它们收集到一个新的列表中。
相关问题
list<object>转list<hashmap>
要将一个List<Object>转换为List<HashMap<String, Object>>,你可以按照以下步骤进行操作:
1. 首先,创建一个空的List<HashMap<String, Object>>来存储转换后的结果。我们称之为mapList。
2. 然后,遍历原始的List<Object>,对于每个元素执行以下操作:
a. 创建一个新的HashMap<String, Object>来存储每个元素的键值对。
b. 将每个元素添加到HashMap中,键为"iccid",值为当前元素。
c. 将HashMap添加到mapList中。
3. 循环结束后,mapList将包含转换后的List<HashMap<String, Object>>。
下面是一个示例代码,演示如何将List<Object>转换为List<HashMap<String, Object>>:
List<Object> list = (List<Object>) Rmap.get("iccids");
List<HashMap<String, Object>> mapList = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
HashMap<String, Object> hashMap = new HashMap<>();
hashMap.put("iccid", list.get(i));
mapList.add(hashMap);
}
现在,mapList将包含转换后的List<HashMap<String, Object>>,每个HashMap中包含一个键值对,键为"iccid",值为对应的元素。
Java将List<HashMap>转换成List<JSONObject>
可以使用Java 8的Stream API来实现将List<HashMap<String, Object>>转换为List<JSONObject>:
```java
import org.json.JSONObject;
import java.util.HashMap;
import java.util.List;
import java.util.stream.Collectors;
public class Example {
public static void main(String[] args) {
List<HashMap<String, Object>> hashMapList = getHashMapList();
List<JSONObject> jsonObjectList = hashMapList.stream()
.map(JSONObject::new)
.collect(Collectors.toList());
System.out.println(jsonObjectList);
}
private static List<HashMap<String, Object>> getHashMapList() {
// 假设这里返回一个List<HashMap<String, Object>>对象
return List.of(
new HashMap<>() {{
put("id", 1);
put("name", "Alice");
}},
new HashMap<>() {{
put("id", 2);
put("name", "Bob");
}}
);
}
}
```
这里的`JSONObject::new`表示使用JSONObject的构造函数来创建对象,实现了从HashMap到JSONObject的转换。最后使用`Collectors.toList()`方法将Stream转换为List。