Computer >> Máy Tính >  >> Lập trình >> Java

Sự khác biệt giữa Danh sách và Tập hợp trong Java

Cả hai giao diện List và Set đều thuộc khung Collection. Cả hai giao diện đều mở rộng giao diện Bộ sưu tập. Cả hai đều được sử dụng để lưu trữ một tập hợp các đối tượng như một đơn vị duy nhất.

Trước jdk1.2, chúng ta thường sử dụng Mảng, Vectơ và Hashtable để nhóm các đối tượng thành một đơn vị duy nhất.

Sr. Không. Phím Danh sách Đặt
1
Quyền truy cập theo vị trí
Danh sách cung cấp quyền truy cập vị trí của các phần tử trong tập hợp.
Set không cung cấp quyền truy cập vị trí vào các phần tử trong bộ sưu tập
2
Triển khai
Thực hiện Danh sách là ArrayList, LinkedList, Vector, Stack
Triển khai một giao diện tập hợp là HashSet và LinkedHashSet
3
Trùng lặp
Chúng ta có thể lưu trữ các phần tử trùng lặp trong danh sách.
Chúng tôi không thể lưu trữ các phần tử trùng lặp trong Bộ
4
Đặt hàng
Danh sách duy trì thứ tự chèn của các phần tử trong bộ sưu tập
Set không duy trì bất kỳ đơn hàng nào
5
Phần tử rỗng
Danh sách có thể lưu trữ nhiều phần tử rỗng
Bộ chỉ có thể lưu trữ một phần tử rỗng

Ví dụ về danh sách

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);
   }
}

Đầu ra

List Elements:
[BMW, Audi, BMW]

Ví dụ về 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();
      }
   }
}

Đầu ra

[2, 4, 3, 5]