有两个list 想把这两个list的值存到Map里 然后输出Map 怎么能不输出重复值

List<String> list1 = new ArrayList<String>();
list1.add("a");
list1.add("b");
list1.add("c");

List<String> list2 = new ArrayList<String>();
list2.add("b");
list2.add("c");
list2.add("d");

//Set set = new HashSet();
//set.addAll(list1);
//set.addAll(list2);
//System.out.println(set);
Map map = new HashMap<String, Object>();
map.put("list1", list1);
map.put("list2", list2);

可以先去掉重复的.再压Map里:
List <String> temp=new ArrayList<String>(list1);//共有数据
temp.retainAll(list2);
list1.removeAll(temp);//list1去掉共有数据
list2.removeAll(temp);//list2去掉共有数据
List <String> list3=new ArrayList<String>();

list3.addAll(list1);
list3.addAll(list2);
Map map = new HashMap<String, Object>();
map.put("list3", list3);
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-07-26
先将2个list组合 在装进map就行啦
第2个回答  2012-07-25
map是用来存储键值对的,不同的数据处理可以选择不同的方式来存储。
map.put("list1", list1); map.put("list2", list2); 还想输出和那个set方式一样?
那你这种方式来存储就没什么意义嘛
第3个回答  2012-07-25
List<String> tempList = new ArrayList<String>();

for(String str:list2){
if(!list1.contains(str){
tempList.add(str);
}

list2 = tempList;

}
Map map = new HashMap<String, Object>();
map.put("list1", list1);
map.put("list2", list2);
相似回答