一:hashmap去重复,为value有重复的HashMap去重
import java.util.HashMap;
import java.util.Map;
public class HashMapTest {
public static void main(String[] args) {
//给出一个value有重复元素的map
Map<Integer, String> m1 = new HashMap<Integer, String>();
m1.put(1, "张1");
m1.put(2, "张2");
m1.put(3, "张3");
m1.put(4, "张4");
m1.put(5, "张5");
m1.put(6, "张1");
System.out.println("去重复之前=" + m1.toString());
//创建一个新的m11
Map<Integer, String> m11 = new HashMap<Integer, String>();
for (int aa : m1.keySet()) {
if (!m11.containsValue(m1.get(aa))) {
m11.put(aa, m1.get(aa));
}
}
System.out.println("去重复之后=" + m11.toString());
}
}
二:List集合中的ArrayList去重复
问题:有List A和B,A和B中元素都是可保证没重复的,现要合并A、B得到新的List C,要求C中不能有重复元素
List<String> a1 = new ArrayList<String>();
a1.add("a");
a1.add("b");
a1.add("c");
a1.add("d");
a1.add("e");
System.out.println("a1集合="+a1.toString());
List<String> b1 = new ArrayList<String>();
b1.add("d");
b1.add("e");
b1.add("f");
System.out.println("b1集合="+b1.toString());
//去重
a1.removeAll(b1);
a1.addAll(b1);
System.out.println("a1和b1合并后="+a1);
三:ArrayList去重复(set集合去重,不打乱顺序)
List<String> list = new ArrayList<String>();
list.add("aaa");
list.add("bbb");
list.add("aaa");
list.add("aba");
list.add("aaa");
Set set = new HashSet();
List newList = new ArrayList();
for (String cd:list) {
if(set.add(cd)){
newList.add(cd);
}
}
System.out.println( "去重后的集合: " + newList);