如何从 java 中的 ArrayList 对象中删除多余的元素?

javaobject oriented programmingprogramming

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

因此,要删除ArrayList对象的冗余元素−

  • 获取/创建所需的ArrayList。

  • 创建一个空的set对象。

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

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

  • 现在,使用addAll()方法将set对象的内容再次添加到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){
      //实例化 ArrayList 对象
      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("数组列表的内容:\n"+list);
      //检索ArrayList类的Iterator对象
      Iterator<String> it = list.iterator();
      //创建一个空的Set对象
      Set<String> set = new HashSet<String>();
      //将ArrayList的元素添加到Set对象
      while(it.hasNext()) {
         set.add(it.next());
      }
      //从 ArrayList 中删除所有元素
      list.clear();
      //将集合中的元素添加回列表
      list.addAll(set);
      System.out.println("删除重复元素后数组列表的内容:\n"+list);
   }
}

输出

数组列表的内容:
[JavaFX、Java、JavaFX、OpenCV、Java、JOGL、JOGL、HBase、Flume、HBase、Impala]
删除重复元素后的数组列表的内容:
[JavaFX, Java, OpenCV, JOGL, Flume, Impala, HBase]

相关文章