Map<Object, Object> datamap = new HashMap<>(); for (int j = 0; j < typeList.size(); j++) { typeName[j]=typeList.get(j).getDsmType(); name=typeList.get(j).getDsmType(); Map<Object, Object> map = new HashMap<>(); ArrayList<Object> data = new ArrayList<Object>(); for (int i = 0; i < list.size(); i++) { driverName[i]=list.get(i).getDriverName(); fatigue[i]=list.get(i).getFatigue(); callPhone[i]=list.get(i).getCallPhone(); smoke[i]=list.get(i).getSmoke(); overSpeed[i]=list.get(i).getOverSpeed(); overWeight[i]=list.get(i).getOverWeight(); overHeight[i]=list.get(i).getOverHeight(); noSeatBelt[i]=list.get(i).getNoSeatBelt(); data.add(fatigue); data.add(callPhone); data.add(smoke); data.add(overSpeed); data.add(overWeight); data.add(overHeight); data.add(noSeatBelt); } map.put("name",name); map.put("data",data); dataList.add(map); }
时间: 2024-04-04 09:34:56 浏览: 15
这段代码看起来像是将一些数据存储到一个 Map 中,其中 key 为一个 Object,value 也是一个 Object。具体来说,代码中首先创建了一个 Map 对象 datamap,然后使用一个 for 循环遍历 typeList,其中 typeName[j] 被赋值为 typeList 中第 j 个元素的 dsmType 属性,同时 name 被赋值为同样的属性值。接着,代码创建了一个新的 Map 对象 map,并创建了一个 ArrayList 对象 data。这里的 for 循环遍历了 list,并将 list 中每个元素的 driverName、fatigue、callPhone 等属性值添加到 data 中。最后,代码将 name 和 data 存储到 map 中,并将 map 存储到 dataList 中。整个过程重复了 typeList 的长度次数,最终得到了一个包含多个 Map 对象的 dataList。
相关问题
Map<Object, Object> datamap = new HashMap<>();for (int j = 0; j < typeList.size(); j++) { String typeName = typeList.get(j).getDsmType(); List<Object> dataList = new ArrayList<>(); for (int i = 0; i < list.size(); i++) { Map<Object, Object> dataMap = new HashMap<>(); dataMap.put("driverName", list.get(i).getDriverName()); dataMap.put("fatigue", list.get(i).getFatigue()); dataMap.put("callPhone", list.get(i).getCallPhone()); dataMap.put("smoke", list.get(i).getSmoke()); dataMap.put("overSpeed", list.get(i).getOverSpeed()); dataMap.put("overWeight", list.get(i).getOverWeight()); dataMap.put("overHeight", list.get(i).getOverHeight()); dataMap.put("noSeatBelt", list.get(i).getNoSeatBelt()); dataList.add(dataMap); } datamap.put(typeName, dataList);}
这段代码创建了一个HashMap,用于存储类型名称和每个类型对应的数据列表。数据列表中包含了每个数据对象的属性,如驾驶员名称、疲劳程度、是否接打电话、是否吸烟、是否超速、是否超载、是否超高、是否未系安全带等等。这个HashMap可以用于方便地管理和访问这些数据,并且可以根据类型名称进行分类、统计和分析。
Map<String, Map<String, List<String>>> dataMap2 = new HashMap<String, Map<String, List<String>>>(map);怎么遍历
可以使用双重循环遍历,首先遍历外层的`Map`,获取每一个内层的`Map`,再遍历内层的`Map`,获取其中的`List`。
以下是示例代码:
```
for (Map.Entry<String, Map<String, List<String>>> entry : dataMap2.entrySet()) {
String key1 = entry.getKey();
Map<String, List<String>> map2 = entry.getValue();
for (Map.Entry<String, List<String>> entry2 : map2.entrySet()) {
String key2 = entry2.getKey();
List<String> list = entry2.getValue();
System.out.println("外层key:" + key1 + ",内层key:" + key2 + ",list:" + list);
}
}
```
其中,`entrySet()`方法可以获取`Map`中所有键值对的集合,每个键值对都是一个`Map.Entry`对象,包含了键和值两部分。通过`getKey()`方法可以获取键,通过`getValue()`方法可以获取值。因为内层的值是一个`Map`,所以需要再次使用`entrySet()`方法遍历内层的`Map`。