将Map<String,Object>数据将每一行数据拆分并存储到对应的List<Integer>数组中
时间: 2024-05-25 21:16:57 浏览: 10
这里提供一种实现方式:
假设有如下的Map<String,Object>数据:
Map<String, Object> data = new HashMap<>();
data.put("row1", Arrays.asList(1, 2, 3));
data.put("row2", Arrays.asList(4, 5, 6));
data.put("row3", Arrays.asList(7, 8, 9));
我们可以使用Java8的Stream API对每一行数据进行处理,将其拆分并存储到对应的List<Integer>数组中:
List<List<Integer>> result = data.entrySet().stream()
.map(entry -> entry.getValue())
.map(value -> ((List<Integer>) value))
.collect(Collectors.toList());
这里的思路是先将Map的value转换为List<Integer>类型,然后将其收集到一个List<List<Integer>>中,最终得到如下的结果:
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
相关问题
怎么把Map<String,Object>的数据根据字段拆分到4个List<Integer>数组里
1. 首先,需要确定要拆分的字段名,假设为"fieldName"。
2. 定义四个空的List<Integer>数组,分别用于存储拆分后的数据。
3. 遍历Map<String,Object>,取出每个元素的"fieldName"字段的值,并将其转化为Integer类型。
4. 根据转化后的值,将元素放入对应的List<Integer>数组中。
示例代码如下:
```
Map<String,Object> map = new HashMap<>();
// 假设map中包含多个元素,每个元素都有一个"fieldName"字段
// 定义四个空的List<Integer>数组
List<Integer> list1 = new ArrayList<>();
List<Integer> list2 = new ArrayList<>();
List<Integer> list3 = new ArrayList<>();
List<Integer> list4 = new ArrayList<>();
// 遍历Map<String,Object>
for (Map.Entry<String,Object> entry : map.entrySet()) {
// 取出每个元素的"fieldName"字段的值,并将其转化为Integer类型
Integer value = Integer.valueOf(entry.getValue().get("fieldName").toString());
// 根据转化后的值,将元素放入对应的List<Integer>数组中
if (value == 1) {
list1.add(value);
} else if (value == 2) {
list2.add(value);
} else if (value == 3) {
list3.add(value);
} else if (value == 4) {
list4.add(value);
}
}
```
Map<String,Object> 根据字段拆分成4个List<Integer>数组
假设Map<String, Object>的键是字符串类型,值是Object类型,我们可以使用Java 8的流式API和Lambda表达式来实现将Map根据字段拆分成4个List<Integer>数组的操作。
假设我们的Map<String, Object>对象如下:
```
Map<String, Object> map = new HashMap<>();
map.put("field1", Arrays.asList(1, 2, 3, 4));
map.put("field2", Arrays.asList(5, 6, 7, 8));
map.put("field3", Arrays.asList(9, 10, 11, 12));
map.put("field4", Arrays.asList(13, 14, 15, 16));
```
我们需要根据字段将Map拆分成4个List<Integer>数组,可以使用以下代码实现:
```
List<Integer>[] lists = new List[4];
IntStream.range(1, 5).forEach(i -> {
String fieldName = "field" + i;
List<Integer> list = (List<Integer>) map.get(fieldName);
lists[i-1] = list;
});
```
以上代码使用IntStream.range()方法生成一个1到4的整数流,然后使用Lambda表达式遍历整个流,在每次迭代中,根据当前的字段名获取Map中对应的List<Integer>,并将其存储在lists数组中的相应位置。
最终,lists数组将包含4个List<Integer>,每个List<Integer>包含与Map中对应字段的值相同的元素。
相关推荐
![jar](https://img-home.csdnimg.cn/images/20210720083455.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)