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

ความแตกต่างระหว่าง List และ Set ใน Java

List และ Set ทั้งคู่เป็นอินเทอร์เฟซที่สังกัด Collection framework ทั้งสองขยายจากอินเทอร์เฟซ Collection ใช้สำหรับเก็บคอลเลกชันของออบเจ็กต์เป็นหน่วยเดียว

ก่อน JDK 1.2 เราใช้ Arrays, Vectors, และ Hashtable สำหรับจัดกลุ่มออบเจ็กต์เป็นหน่วยเดียว

ลำดับหัวข้อListSet
1การเข้าถึงตำแหน่ง (Positional access)List ให้การเข้าถึงตำแหน่งขององค์ประกอบในคอลเลกชันSet ไม่ให้การเข้าถึงตำแหน่งขององค์ประกอบในคอลเลกชัน
2การนำไปใช้ (Implementation)ArrayList, LinkedList, Vector, StackHashSet, LinkedHashSet, TreeSet
3ค่าซ้ำ (Duplicate)เก็บค่าซ้ำได้เก็บค่าซ้ำไม่ได้
4ลำดับ (Ordering)รักษาลำดับการแทรก (insertion order)ไม่รักษาลำดับใดๆ (ยกเว้น LinkedHashSet/TreeSet)
5ค่า Nullเก็บ null หลายค่าได้เก็บ null ได้เพียงค่าเดียว

ตัวอย่าง List

import java.util.List; 
import java.util.ArrayList; 
import java.util.LinkedList; 
public class ListExample { 
    public static void main(String[] args) { 
        List<String> al = new ArrayList<String>(); 
        al.add("BMW"); 
        al.add("Audi"); 
        al.add("BMW"); 
        System.out.println("List Elements: "); 
        System.out.print(al); 
    } 
}

ผลลัพธ์

List Elements: [BMW, Audi, BMW]

ตัวอย่าง Set

import java.util.Set; 
import java.util.HashSet; 
import java.util.TreeSet; 
public class SetExample { 
    public static void main(String args[]) { 
        int count[] = {2, 4, 3, 5}; 
        Set<Integer> hset = new HashSet<Integer>(); 
        try{ 
            for(int i = 0; i<4; i++){ 
                hset.add(count[i]); 
            } 
            System.out.println(hset); 
        } catch(Exception e){ 
            e.printStackTrace(); 
        } 
    } 
}

ผลลัพธ์

[2, 4, 3, 5]