如何删除列表中的重复元素?

时间:2018-01-06 02:54:04

标签: java arraylist

List<Integer> list = new ArrayList<>(1,2,1,3,5);

输出将是[2,3,5]而不是1

3 个答案:

答案 0 :(得分:0)

这可以帮到你:

import java.util.ArrayList;
import java.util.Arrays;

public class RemoveDuplicateElement {

    public static void main(String[] args) {
        ArrayList<Integer> list = new ArrayList<Integer>(Arrays.asList(1,2,1,3,5));
        ArrayList<Integer> duplicateElementsRemovedList = new ArrayList<Integer>();
        for (Integer elementToSearch :list) {
            int found=0;
            for (Integer element :list) {
                if(elementToSearch.equals(element)) {
                    found++;
                }
            }
            if(found==1)
            {
                duplicateElementsRemovedList.add(elementToSearch);
            }
        }
        for (Integer element :duplicateElementsRemovedList) {
            System.out.println(element);
        }

    }

}

答案 1 :(得分:-1)

如果你想只有唯一的记录,你可以使用HashSet,但正如你所提到的,你要删除所有重复的元素,你可以使用这个最简单的代码来完成它,你需要做的就是创建一个新的列表,只包含唯一身份并删除重复项。看看

List cleanList = new ArrayList<Integer>();
for(int n=0;n<list.size();n++){

  if(!cleanList.contains(list.get(n))){
    cleanList.add(list.get(n));
  }else{
    cleanList.remove(list.get(n));
  }
}

cleanList中的结果将是3,5。看看你是否可以使用它或从上面的脚本中获取想法

答案 2 :(得分:-2)

您可以在此处发布问题之前使用Google搜索一次,无论如何请检查link

无法删除数组的一部分。您有两个选项,要么可以将元素移到左侧,要么创建一个没有重复元素的新数组,并删除旧数组。

这可能会解决您的疑问。