Trong Java 9, một số phương thức gốc đã được thêm vào Bộ sưu tập API . Bằng cách sử dụng các phương pháp gốc này, chúng tôi có thể tạo không thể sửa đổi liệt kê, thiết lập và ánh xạ các đối tượng thu thập để giảm số lượng dòng mã. List.of (), Set.of () , Map.of () và Map.ofEntries () là các phương pháp nhà máy tĩnh cung cấp cách thuận tiện để tạo bất biến bộ sưu tập trong Java 9.
Lợi ích của Bộ sưu tập bất biến
- Ít dung lượng heap hơn: Dung lượng cần thiết để lưu trữ dữ liệu thu thập là rất ít so với cách tiếp cận truyền thống trong các phiên bản java trước đó.
- Truy cập dữ liệu nhanh hơn: Là phần chi phí để lưu trữ dữ liệu và gói vào Collections.unmodifiable được giảm xuống, giờ đây việc truy cập dữ liệu trở nên nhanh hơn. Điều đó có nghĩa là hiệu quả chung của chương trình được tăng lên.
- An toàn chuỗi :Các bộ sưu tập bất biến đương nhiên là t hread-safe . Vì tất cả các chuỗi luôn có cùng một chế độ xem dữ liệu cơ bản.
Cú pháp
List.of(elements...) Set.of(elements...) Map.of(k1, v1, k2, v2)
Ví dụ
import java.util.Set; import java.util.List; import java.util.Map; public class ImmutableCollectionsTest { public static void main(String args[]) { List<String> stringList = List.of("a", "b", "c"); System.out.println("List values: " + stringList); Set<String> stringSet = Set.of("a", "b", "c"); System.out.println("Set values: " + stringSet); Map<String, Integer> stringMap = Map.of("a", 1, "b", 2, "c", 3); System.out.println("Map values: " + stringMap); } }
Đầu ra
List values: [a, b, c] Set values: [a, b, c] Map values: {a=1, b=2, c=3}