บทนำ
ในบทความนี้ เราจะเรียนรู้วิธีการลบค่าซ้ำ (Remove duplicates) จาก ArrayList ลิสต์ (List) เป็นคอลเลกชันที่มีลำดับ ช่วยให้จัดเก็บและเข้าถึงสมาชิกแบบลำดับได้ มีเมธอดแบบดัชนีสำหรับแทรก อัปเดต ลบ และค้นหา สามารถมีสมาชิกซ้ำได้
ตัวอย่างการทำงาน
อินพุทตัวอย่าง:
The list is defined as: [Java, Scala, Python, Java]
เอาต์พุทที่คาดหวัง:
The list after removing the duplicates: [Java, Scala, Python]
อัลกอริทึม
ขั้นตอนที่ 1 - เริ่มต้น ขั้นตอนที่ 2 - ประกาศลิสต์ชื่อ input_list และ Set ชื่อ result_set ขั้นตอนที่ 3 - กำหนดค่า ขั้นตอนที่ 4 - แปลงอินพุตลิสต์เป็นเซต (Set) เนื่องจากเซตไม่สามารถมีค่าซ้ำได้ ขั้นตอนที่ 5 - แสดงผลลัพธ์ ขั้นตอนที่ 6 - จบการทำงาน
ตัวอย่างที่ 1: เขียนในฟังก์ชัน main โดยตรง
import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
public class Demo {
public static void main(String[] args) {
System.out.println("The required packages have been imported");
List input_list = new ArrayList();
input_list.add("Java");
input_list.add("Scala");
input_list.add("Python");
input_list.add("Java");
System.out.println("The list is defined as: " + input_list.toString());
Set result_set = new LinkedHashSet(input_list);
System.out.println("The list after removing the duplicates: " + result_set);
}
}
เอาต์พุท
The required packages have been imported The list is defined as: [Java, Scala, Python, Java] The list after removing the duplicates: [Java, Scala, Python]
ตัวอย่างที่ 2: ใช้เมธอดแยก (Object-Oriented Style)
import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
public class Demo {
static void remove_duplicates(List input_list) {
Set result_set = new LinkedHashSet(input_list);
System.out.println("The list after removing the duplicates: " + result_set);
}
public static void main(String[] args) {
System.out.println("The required packages have been imported");
List input_list = new ArrayList();
input_list.add("Java");
input_list.add("Scala");
input_list.add("Python");
input_list.add("Java");
System.out.println("The list is defined as: " + input_list.toString());
remove_duplicates(input_list);
}
}
เอาต์พุท
The required packages have been imported The list is defined as: [Java, Scala, Python, Java] The list after removing the duplicates: [Java, Scala, Python]
ข้อแตกต่างจากบทความก่อนหน้า (1004093042): บทความนี้ใช้ LinkedHashSet โดยตรงเป็นผลลัพธ์ (ไม่แปลงกลับเป็น List) ทั้งสองวิธีให้ผลลัพธ์เหมือนกัน แต่ LinkedHashSet รักษาลำดับการแทรก (Insertion order)