list<HashMap>用stream转HashMap
时间: 2023-05-12 10:06:21 浏览: 150
可以使用Java 8中的stream()方法和collect()方法将list<HashMap>转换为HashMap。代码示例如下:
HashMap<String, String> result = list.stream()
.flatMap(map -> map.entrySet().stream())
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
这段代码将list中的所有HashMap对象的键值对转换为一个流,然后使用collect()方法将其转换为一个新的HashMap对象。
相关问题
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。
两个list<HashMap> 差集
可以使用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`方法将它们收集到一个新的列表中。