List<Map<String, Object>> resultList;使用java,staem以id去重
时间: 2023-10-29 07:39:28 浏览: 44
可以使用Java 8的stream API进行去重操作,可以按照以下代码进行操作:
List<Map<String, Object>> uniqueList = resultList.stream()
.collect(Collectors.toMap(map -> map.get("id"), map -> map, (a, b) -> a))
.values()
.stream()
.collect(Collectors.toList());
这个代码段首先将List中的元素映射为一个key-value的Map对象,其中key为id,value为对应的Map对象,当出现重复key时,使用一个lambda表达式来定义如何处理重复key的情况,本例中选择保留第一个出现的元素。最后将去重后的Map对象转化为List对象即可。
相关问题
String类型转换成List<Map<String,Object>>
可以使用以下方法将String类型转换为List<Map<String, Object>>:
1. 使用JSON库进行转换:
```java
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
String jsonString = "[{\"key1\":\"value1\",\"key2\":\"value2\"},{\"key1\":\"value3\",\"key2\":\"value4\"}]";
ObjectMapper objectMapper = new ObjectMapper();
List<Map<String, Object>> resultList = objectMapper.readValue(jsonString, new TypeReference<List<Map<String, Object>>>(){});
// 输出结果
System.out.println(resultList);
```
2. 使用Gson库进行转换:
```java
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
String jsonString = "[{\"key1\":\"value1\",\"key2\":\"value2\"},{\"key1\":\"value3\",\"key2\":\"value4\"}]";
Gson gson = new Gson();
List<Map<String, Object>> resultList = gson.fromJson(jsonString, new TypeToken<List<Map<String, Object>>>(){}.getType());
// 输出结果
System.out.println(resultList);
```
3. 使用Jackson库进行转换:
```java
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.type.TypeReference;
String jsonString = "[{\"key1\":\"value1\",\"key2\":\"value2\"},{\"key1\":\"value3\",\"key2\":\"value4\"}]";
ObjectMapper objectMapper = new ObjectMapper();
List<Map<String, Object>> resultList = objectMapper.readValue(jsonString, new TypeReference<List<Map<String, Object>>>(){});
// 输出结果
System.out.println(resultList);
```
ResultSet 转 Map<String, Object> 或者 List<Map<String, Object>>
ResultSet 是 Java 中用于表示数据库查询结果的接口。如果你想将 ResultSet 转换为 Map<String, Object> 或者 List<Map<String, Object>>,可以按照以下步骤进行操作:
1. 将 ResultSet 转换为 Map<String, Object>:
首先,创建一个空的 Map<String, Object> 对象。然后,使用 ResultSet 的 getMetaData() 方法获取结果集的元数据信息,包括列名和列数。接下来,使用 ResultSet 的 next() 方法遍历结果集的每一行数据。在遍历的过程中,使用 ResultSet 的 getObject() 方法获取每一列的值,并将其存储到 Map 中,以列名作为键,列值作为值。最后,将每个 Map 添加到 List 中,即可得到 List<Map<String, Object>>。
下面是一个示例代码:
```java
ResultSet resultSet = ...; // 假设已经获取到 ResultSet 对象
List<Map<String, Object>> resultList = new ArrayList<>();
try {
ResultSetMetaData metaData = resultSet.getMetaData();
int columnCount = metaData.getColumnCount();
while (resultSet.next()) {
Map<String, Object> rowMap = new HashMap<>();
for (int i = 1; i <= columnCount; i++) {
String columnName = metaData.getColumnName(i);
Object columnValue = resultSet.getObject(i);
rowMap.put(columnName, columnValue);
}
resultList.add(rowMap);
}
} catch (SQLException e) {
e.printStackTrace();
}
```
2. 将 ResultSet 转换为 List<Map<String, Object>>:
如果你只需要将 ResultSet 转换为 List<Map<String, Object>>,可以直接使用上述代码中的 resultList。
希望以上解答能够帮助到你!如果你还有其他问题,请继续提问。