Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

จะลบองค์ประกอบที่ซ้ำซ้อนออกจากวัตถุ ArrayList ใน java ได้อย่างไร


ชุดอินเทอร์เฟซไม่อนุญาตให้องค์ประกอบที่ซ้ำกัน เมธอด add() ของอินเทอร์เฟซนี้ยอมรับองค์ประกอบและเพิ่มไปยังวัตถุ Set หากการเพิ่มสำเร็จก็จะคืนค่าเป็น จริง หากคุณพยายามเพิ่มองค์ประกอบที่มีอยู่โดยใช้วิธีนี้ การดำเนินการเพิ่มเติมจะไม่คืนค่าเท็จ

ดังนั้น เพื่อลบองค์ประกอบที่ซ้ำซ้อนของวัตถุ ArrayList -

  • รับ/สร้าง ArrayList ที่จำเป็น

  • สร้างวัตถุชุดว่าง

  • พยายามเพิ่มองค์ประกอบทั้งหมดของวัตถุ ArrayList เพื่อกำหนดวัตถุประสงค์

  • ล้างเนื้อหาของ ArrayList โดยใช้วิธี clear()

  • ตอนนี้ ใช้เมธอด 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]