Map<String,Integer> map = null; map = JSON.parseObject(name, Map.class); List<DistributionVo> arr = new ArrayList<>(); //已分配记录 List<String> distributionList = baseMapper.getFrameDistributionListById(id); Map<String,Integer> distributions = null; for (int i = 0; i < distributionList.size(); i++) { String s = distributionList.get(i); map = JSON.parseObject(s, Map.class); for(String distributionMap :map.keySet()){ String distribution = distributionMap; Integer scene = map.get(distribution); distributions.put(distribution,scene); } }
时间: 2023-06-20 21:04:43 浏览: 333
在这段代码中,首先定义了一个名为`map`的`Map`对象,并将其初始化为`null`。然后使用`JSON.parseObject`方法将一个字符串类型的JSON对象`name`解析成`Map`对象,并将其赋值给`map`。接下来,定义了一个名为`arr`的`List`对象,并将其初始化为空列表。然后,通过调用`baseMapper.getFrameDistributionListById(id)`方法,获取了一个名为`distributionList`的`List`对象,其中包含了已分配记录的信息。接着,又定义了一个名为`distributions`的`Map`对象,并将其初始化为`null`。在`for`循环中,遍历了`distributionList`列表中的每一个元素,并将其解析成一个名为`map`的`Map`对象。然后,再次遍历`map`中的每一个键值对,将键和值分别存储到`distributions`中。最后,返回了一个名为`distributions`的`Map`对象。
相关问题
private static Map<String, JSONArray> readExcelManySheet(MultipartFile mFile, File file) throws IOException { Workbook book = getWorkbook(mFile, file); if (book == null) { return Collections.emptyMap(); } Map<String, JSONArray> map = new LinkedHashMap<>(); for (int i = 0; i < book.getNumberOfSheets(); i++) { Sheet sheet = book.getSheetAt(i); JSONArray arr = readSheet(sheet); map.put(sheet.getSheetName(), arr); } book.close(); return map; } 这段代码是什么意思
这段代码是一个读取Excel文件的方法,可以读取多个工作表(sheet),将每个工作表的数据按照JSON数组的形式存储到一个Map中。具体实现过程如下:
1. 根据传入的文件或者文件流获取一个Workbook对象。
2. 如果Workbook对象为空,则返回一个空的Map。
3. 遍历每一个工作表(sheet),获取该工作表的名称和数据,并将其存储到一个JSON数组中。
4. 将每个工作表的名称和对应的JSON数组存储到一个Map中。
5. 关闭Workbook对象。
6. 返回存储了每个工作表数据的Map。
hutool List<Map<Interget,String>> list; list.add(new map{{1,大朗},{2,东莞}})list.add(new map{{1,福田}{2,深圳}}) 地点排序,河源、深圳、惠州、中山、东莞
您可以使用Java的Collections.sort()方法来对List<Map<Integer, String>>进行排序,具体实现如下:
```
List<Map<Integer, String>> list = new ArrayList<>();
Map<Integer, String> map1 = new HashMap<>();
map1.put(1, "大朗");
map1.put(2, "东莞");
list.add(map1);
Map<Integer, String> map2 = new HashMap<>();
map2.put(1, "福田");
map2.put(2, "深圳");
list.add(map2);
Collections.sort(list, new Comparator<Map<Integer, String>>() {
@Override
public int compare(Map<Integer, String> o1, Map<Integer, String> o2) {
String[] arr = {"河源", "深圳", "惠州", "中山", "东莞"};
int index1 = -1;
int index2 = -1;
for (int i = 0; i < arr.length; i++) {
if (o1.containsValue(arr[i])) {
index1 = i;
}
if (o2.containsValue(arr[i])) {
index2 = i;
}
}
return index1 - index2;
}
});
```
上述代码中,我们首先定义了一个List<Map<Integer, String>>,然后向其中添加两个Map。最终对List进行排序,排序规则与之前的回答一致,我们使用containsValue()方法来判断Map中是否包含该地点,如果包含则记录下该地点在数组中的索引,最终返回两个Map在数组中的索引差,从而完成排序。
阅读全文