Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Sự khác biệt giữa List và Set trong Java

List và Set đều là interface thuộc Collection framework. Cả hai interface đều kế thừa từ Collection interface. Chúng đều dùng để lưu trữ tập hợp các đối tượng như một đơn vị duy nhất.

Trước JDK 1.2, chúng ta dùng Arrays, Vectors, và Hashtable để gom nhóm đối tượng thành đơn vị.

STT Tiêu chí List Set
1 Truy cập vị trí List cung cấp truy cập vị trí của các phần tử trong collection. Set không cung cấp truy cập vị trí cho các phần tử.
2 Implementation Implementation của List: ArrayList, LinkedList, Vector, Stack. Implementation của Set: HashSet, LinkedHashSet, TreeSet.
3 Trùng lặp Có thể lưu phần tử trùng lặp trong List. Không thể lưu phần tử trùng lặp trong Set.
4 Thứ tự List duy trì thứ tự thêm vào của các phần tử. Set không duy trì thứ tự nào (trừ LinkedHashSet/TreeSet).
5 Phần tử Null List có thể lưu nhiều phần tử null. Set chỉ có thể lưu một phần tử null (HashSet).

Ví dụ List

import java.util.List;
import java.util.ArrayList;

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

Kết quả

List Elements: [BMW, Audi, BMW]

Ví dụ Set

import java.util.Set;
import java.util.HashSet;

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

Kết quả

[2, 4, 3, 5]