อินเทอร์เฟซ Set ไม่อนุญาตให้มีองค์ประกอบซ้ำ เมธอด add() ของอินเทอร์เฟซนี้รับองค์ประกอบและเพิ่มลงในอ็อบเจกต์ Set หากเพิ่มสำเร็จคืนค่า true หากพยายามเพิ่มองค์ประกอบที่มีอยู่แล้ว การเพิ่มจะล้มเหลวคืนค่า false
ดังนั้น เพื่อลบองค์ประกอบซ้ำของอ็อบเจกต์ ArrayList −
- ได้/สร้าง ArrayList ที่ต้องการ
- สร้างอ็อบเจกต์ Set ว่าง
- พยายามเพิ่มองค์ประกอบทั้งหมดของ ArrayList ลงใน Set
- ล้างเนื้อหาของ ArrayList ด้วยเมธอด clear()
- ตอนนี้ ใช้เมธอด 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("Contents of the Array List : \n" + list);
// ได้ Iterator ของ ArrayList
Iterator<String> it = list.iterator();
// สร้าง Set ว่าง
Set<String> set = new HashSet<String>();
// เพิ่มองค์ประกอบของ ArrayList ลง Set
while(it.hasNext()) {
set.add(it.next());
}
// ลบองค์ประกอบทั้งหมดจาก ArrayList
list.clear();
// เพิ่มองค์ประกอบของ Set กลับเข้า 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]