如何从 java 中的 ArrayList 对象中移除冗余元素?


接口集不允许重复元素。此接口的 add() 方法接受元素并将其添加到 Set 对象中,如果添加成功,则返回 true,如果你尝试使用此方法添加现有元素,则添加操作将失败并返回 false。

因此,要移除 ArrayList 对象的冗余元素 -

  • 获取/创建所需的 ArrayList。

  • 创建一个空集合对象。

  • 尝试将 ArrayList 对象的所有元素添加到集合目标。

  • 使用 clear() 方法清除 ArrayList 的内容。

  • 现在,使用 addAll() 方法再次将集合对象的内容添加到 ArrayList。

示例

 在线演示

import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class RemovingDuplicates {
   public static void main(String[] args){
      //Instantiating an ArrayList object
      ArrayList<String> list = new ArrayList<String>();
      list.add("JavaFX");
      list.add("Java");
      list.add("JavaFX");
      list.add("OpenCV");
      list.add("Java");
      list.add("JOGL");
      list.add("JOGL");
      list.add("HBase");
      list.add("Flume");
      list.add("HBase");
      list.add("Impala");
      System.out.println("Contents of the Array List : \n"+list);
      //Retrieving Iterator object of the ArrayList class
      Iterator<String> it = list.iterator();
      //Creating an empty Set object
      Set<String> set = new HashSet<String>();
      //Adding elements of the ArrayList to the Set object
      while(it.hasNext()) {
         set.add(it.next());
      }
      //Removing all the elements from the ArrayList
      list.clear();
      //Adding elements of the set back to the list
      list.addAll(set);
      System.out.println("Contents of the Array List after removing duplicate elements: \n"+list);
   }
}

输出

Contents of the Array List :
[JavaFX, Java, JavaFX, OpenCV, Java, JOGL, JOGL, HBase, Flume, HBase, Impala]
Contents of the Array List after removing duplicate elements:
[JavaFX, Java, OpenCV, JOGL, Flume, Impala, HBase]

更新于: 2019-10-15

415 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始
广告