HashMap一键对多值的存与取

Map一键对多值的存与取

1. map的一个值对应多个value,根据map的性质,是要覆盖的,只有用它的泛型放,

Map<String,List> map1 = new HashMap() 
if(map1.containsKey(data.getPrpName())){ //判断key是否一样    
    map1.get(data.getPrpName()).add(map2); 
}else{ 
    List list = new ArrayList(); 
    list.add(map2); 
    map1.put(data.getPrpName(),list) ;  
} 

2. 上面那样放进去后,取的时候只有用list了

List list  = map1.get(oe.getName());//由上所知Map1的value值装进的是个Map2 
HashMap map3 = new HashMap(); 
HashMap map4 = new HashMap(); 
if(list!=null){ 
    for(int i=0; i<list.size(); i++){ 
    map3 = (HashMap) list.get(i); 
    Set entries = map3.entrySet(); 
    if (entries != null) { 
    //使用迭代器遍历
        Iterator iterator = entries.iterator(); 
        while (iterator.hasNext()) { 
            Map.Entry entry = (Entry) iterator.next(); 
            Object key = entry.getKey(); 
            Object value = entry.getValue(); 
            //存放到map4
            map4.put(key, value); 
        } 
    }
}

你可能感兴趣的:(Android学习)