不知道怎么最近找工作会遇到些人问list出现重复值去重的办法,目前自己就只想到了两个办法,欢迎高手指点!
1.首先第一个办法最简单的就是用 set ,set本身就是不能出现重复值的,所以他会自动去重。
实例:
//创建一个集合写入重复数据
ArrayList<Object> list = new ArrayList();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
list.add("a");
list.add("c");
list.add("h");
//创建一个Set
HashSet<Object> set = new HashSet<>();
//去除list中的重复数据 切记set添加集合用addAll
set.addAll(list);
//清空集合原来的数据
list.clear();
//把去重了的数据添加到list里面
list.add(set);
System.out.println(list);
2.第二个办法就是用循环来去除重复值
//创建一个集合写入重复数据
ArrayList<Object> list = new ArrayList();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
list.add("a");
list.add("c");
list.add("h");
//创建一个空集合用来去除原集合的重复值
LinkedList linkedList = new LinkedList();
//写一个循环和判断将重复值去除
for (int i = 0; i < list.size(); i++) {
//如果没有相等的元素才将list.get(i)的元素添加进空集合里面
if (!linkedList.contains(list.get(i))){
linkedList.add(list.get(i));
}
}
System.out.println(linkedList);