如何從 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 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始
廣告