Collection<List<Object>> 求总和
时间: 2023-08-10 15:03:10 浏览: 56
可以使用两个嵌套的 foreach 循环来遍历 Collection<List<Object>> 中的所有元素,然后将每个 List<Object> 中的元素累加起来,最终得到总和。具体实现如下:
```java
Collection<List<Object>> collection = ...; // 初始化 Collection<List<Object>>
int sum = 0;
for (List<Object> list : collection) {
for (Object obj : list) {
if (obj instanceof Number) {
sum += ((Number) obj).intValue();
}
}
}
System.out.println("总和为:" + sum);
```
上述代码中,我们假设 Collection<List<Object>> 中只包含 Number 类型的元素,因此我们只需要判断元素类型是否为 Number,然后将其转换为 int 类型进行累加。如果 Collection<List<Object>> 中包含非 Number 类型的元素,需要根据情况进行相应的处理。
相关问题
java 类型转换String类型转为Collection<Map<String,Object>>类型
要将String类型转换为Collection<Map<String, Object>>类型,可以按照以下步骤进行操作:
1. 首先,将String类型的数据转换为List<Map<String, Object>>类型。可以使用JSON库(如Jackson、Gson)将String类型的数据解析为List<Map<String, Object>>类型的对象。具体的代码示例如下:
```java
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
String jsonString = "[{\"key1\":\"value1\",\"key2\":\"value2\"},{\"key3\":\"value3\",\"key4\":\"value4\"}]";
ObjectMapper objectMapper = new ObjectMapper();List<Map<String, Object>> list = objectMapper.readValue(jsonString, new TypeReference<List<Map<String, Object>>>(){});
System.out.println(list);
```
2. 接下来,将List<Map<String, Object>>类型的对象转换为Collection<Map<String, Object>>类型。由于List是Collection的子接口,因此可以直接将List对象赋值给Collection类型的变量。具体的代码示例如下:
```java
Collection<Map<String, Object>> collection = list;
System.out.println(collection);
```
这样,就完成了将String类型转换为Collection<Map<String, Object>>类型的操作。
不用Stream对List<Map<String,Object>>去重
可以使用Java 8中的Lambda表达式和Stream API来对List<Map<String,Object>>进行去重操作。具体实现方式如下:
List<Map<String,Object>> list = new ArrayList<>();
// 添加元素到list中
List<Map<String,Object>> distinctList = list.stream()
.collect(Collectors.collectingAndThen(
Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(map -> map.get("key")))),
ArrayList::new));
这段代码使用了Collectors.toCollection()方法来创建一个TreeSet集合,该集合会根据Map中的key进行去重操作。然后使用Collectors.collectingAndThen()方法将去重后的结果转换为ArrayList类型。
需要注意的是,如果Map中的value值不同,那么这种去重方式可能会导致数据丢失。如果需要保留所有的value值,可以使用其他的去重方式,比如使用HashSet集合来进行去重操作。