在Java中删除ArrayList中的特定重复项

在Java中删除ArrayList中的特定重复项,java,arraylist,set,duplicates,hashset,Java,Arraylist,Set,Duplicates,Hashset,如何在Java中删除ArrayList中的重复项(特定元素除外)? 例如,如果我有一个带有 "a", "b", "c", "d", "d", "a", "b", "b", "d", "c" 我只想删除“a”、“b”和“c”的重复项,还需要保持元素的顺序。无法删除重复的“d” 我如何才能做到这一点?您必须维护两个列表: 一个是实际列表,另一个是removeDuplicated列表,它告诉您的程序哪些条目保持唯一 此外,您可以使用LinkedList或ArrayList按顺序进行维护。我将创建另一

如何在Java中删除ArrayList中的重复项(特定元素除外)? 例如,如果我有一个带有

"a", "b", "c", "d", "d", "a", "b", "b", "d", "c"
我只想删除
“a”
“b”
“c”
的重复项,还需要保持元素的顺序。无法删除重复的
“d”


我如何才能做到这一点?

您必须维护两个列表:

一个是实际列表,另一个是removeDuplicated列表,它告诉您的程序哪些条目保持唯一


此外,您可以使用LinkedList或ArrayList按顺序进行维护。

我将创建另一个没有重复项的数组

创建另一个数组(list2)并从源数组(list1)添加元素(如果list2不包含除“d”之外的相同元素)

arraylistlist1;
ArrayList列表2;

对于(inti=0;i如果这是一个家庭作业,我不想写代码

执行以下操作

  • 定义一个不允许的项目
    ('a'、'b'、'c')
    HashSet
    ,以及一个名为消除集的空
    HashSet

  • 遍历
    ArrayList

  • 根据消除项测试项目
    HashSet
    ,如果项目在消除项集中,则从
    ArrayList
    中删除该项目

  • 根据不允许的
    HashSet
    测试项目,如果项目在不允许的集合中,则将项目添加到消除
    HashSet


  • 时间复杂度是O(n),其中n是
    ArrayList的长度

    我将创建2个ArrayList。一个包含值,一个包含要删除的值。只需使用不再需要的值列表进行删除即可

    public class SOTest
    {
        public static void main(String[] args)
        {
         String [] strAr = {"a", "b", "c", "d", "d", "a", "b", "b", "d", "c"};
         String [] removeAr = {"a", "b"};
    
         ArrayList<String> arList = new ArrayList<String>(Arrays.asList(strAr));
         ArrayList<String> removeList = new ArrayList<String>(Arrays.asList(removeAr));
         arList.removeAll(removeList);
    
         for(String s : arList)
             System.out.println(s);
        }
    }
    
    公共类SOTest
    {
    公共静态void main(字符串[]args)
    {
    字符串[]strAr={“a”、“b”、“c”、“d”、“d”、“a”、“b”、“b”、“d”、“c”};
    字符串[]removeAr={“a”,“b”};
    ArrayList arList=新的ArrayList(Arrays.asList(strAr));
    ArrayList removeList=新的ArrayList(Arrays.asList(removeAr));
    arList.removeAll(removeList);
    for(字符串s:arList)
    系统输出打印项次;
    }
    }
    
    你能举个例子吗?
    public class SOTest
    {
        public static void main(String[] args)
        {
         String [] strAr = {"a", "b", "c", "d", "d", "a", "b", "b", "d", "c"};
         String [] removeAr = {"a", "b"};
    
         ArrayList<String> arList = new ArrayList<String>(Arrays.asList(strAr));
         ArrayList<String> removeList = new ArrayList<String>(Arrays.asList(removeAr));
         arList.removeAll(removeList);
    
         for(String s : arList)
             System.out.println(s);
        }
    }