1.List<HashMap<String,String>>
List中每一项都是一个HashMap
HashMap<String,String> map中 key是一个String,value也是一个String
2.
import
java.util.ArrayList;
import
java.util.HashMap;
import
java.util.Iterator;
import
java.util.List;
import
java.util.Map;
public
class
Test {
/**
* @param args
*/
public
static
void
main(String[] args) {
List<Map<String, String>> list =
new
ArrayList<Map<String,String>>();
Map<String,String> map1 =
new
HashMap<String,String>();
map1.put(
"count"
,
"1"
);
map1.put(
"name"
,
"帮宝适纸尿裤L164 超薄干爽夏季透气专用婴儿尿不湿"
);
map1.put(
"province"
,
"江苏省"
);
map1.put(
"date"
,
"2014-09-23 10:13:39"
);
map1.put(
"channel"
,
"东环大润发"
);
map1.put(
"city"
,
"苏州市"
);
list.add(map1);
System.out.println(mergeList(list));
}
/**
* 合并相同的Map
* @param list
* @return
*/
public
static
List<Map<String,String>> mergeList(List<Map<String,String>> list){
List<Map<String,String>> retList =
new
ArrayList<Map<String,String>>();
for
(
int
i=
0
;i<list.size();i++){
Map<String,String> map = list.get(i);
String name = map.get(
"name"
);
String city = map.get(
"city"
);
String count = map.get(
"count"
);
Map<String,String> newMap=isExistSame(i,name,city,count,list);
if
(
null
==newMap){
retList.add(map);
}
else
{
list.remove(map.get(i));
retList.add(newMap);
}
}
return
retList;
}
private
static
Map<String,String> isExistSame(
int
i,String name,String city,String count,List<Map<String,String>> list){
Map<String,String> newMap =
null
;
for
(
int
j=i+
1
;j<list.size();j++){
Map<String,String> innerMap = list.get(j);
String name1 = innerMap.get(
"name"
);
String city1 = innerMap.get(
"city"
);
String count1 = innerMap.get(
"count"
);
if
(name.equals(name1)&&city.equals(city1)){
newMap =
new
HashMap<String,String>();
newMap.put(
"count"
,
""
+(Integer.parseInt(count)+Integer.parseInt(count1)));
Iterator<String> keyIterator = innerMap.keySet().iterator();
while
(keyIterator.hasNext()){
String key = keyIterator.next();
if
(!key.equals(
"count"
)){
newMap.put(key, innerMap.get(key));
}
}
list.remove(j);
}
}
return
newMap;
}
}