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

โปรแกรม Java ลบค่าซ้ำใน ArrayList (เก็บลำดับเดิม)


บทนำ

ในบทความนี้ เราจะเรียนรู้วิธีการลบค่าซ้ำ (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)