ArrayList对象转HashMap,arraylisthashmap
分享于 点击 1729 次 点评:132
ArrayList对象转HashMap,arraylisthashmap
public static void main(String[] args) { Map<String, Map<String, String>> map = new HashMap<>(); List<Dep> deps = new ArrayList<>(); deps.add(new Dep("张三","2018-07","10")); deps.add(new Dep("张三","2018-06","43")); deps.add(new Dep("李四","2018-06","53")); deps.add(new Dep("王五","2018-07","37")); String[] dates = new String[deps.size()]; int count = 0; for(Dep d : deps) { Map<String, String> temps = map.get(d.name); if(temps == null) { temps = new HashMap<>(); map.put(d.name, temps); } temps.put(d.date, d.count); String date = d.date; dates[count ++] = d.date; } System.out.println("map--->>"+map); Set<String> set = new HashSet<>(); for (int i = 0; i < dates.length; i ++) { set.add(dates[i]); } dates = (String[]) set.toArray(new String[set.size()]); Map<String, List<String>> result = new HashMap<>(); for(Map.Entry<String, Map<String, String>> entry : map.entrySet()) { List<String> tempList = result.get(entry.getKey()); if(tempList == null) { tempList = new ArrayList<>(); result.put(entry.getKey(), tempList); } Map<String, String> tempMap = entry.getValue(); for(String s : dates) { tempList.add(tempMap.get(s)); } } System.out.println("result--->>"+result); } static class Dep { private String name; private String date; private String count; Dep(){ } Dep(String name, String date, String count){ this.name = name; this.date = date; this.count = count; } }
输出结果:
map--->>{李四={2018-06=53}, 张三={2018-06=43, 2018-07=10}, 王五={2018-07=37}}
result--->>{李四=[53, null], 张三=[43, 10], 王五=[null, 37]}
相关文章
- 暂无相关文章
用户点评