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]