1) Nếu Bản đồ có thể là bất biến:
Collections.emptyMap()
// or, in some cases:
Collections.<String, String>emptyMap()
Đôi khi bạn sẽ phải sử dụng cái sau khi trình biên dịch không thể tự động tìm ra loại Bản đồ nào cần thiết (đây được gọi là kiểu suy luận ). Ví dụ, hãy xem xét một phương thức được khai báo như thế này:
public void foobar(Map<String, String> map){ ... }
Khi chuyển trực tiếp Bản đồ trống đến nó, bạn phải rõ ràng về loại:
foobar(Collections.emptyMap()); // doesn't compile
foobar(Collections.<String, String>emptyMap()); // works fine
2) Nếu bạn cần có thể sửa đổi Bản đồ, thì ví dụ:
new HashMap<String, String>()
(như tehblanx đã chỉ ra )
Phụ lục : Nếu dự án của bạn sử dụng Ổi , bạn có các lựa chọn thay thế sau:
1) Bản đồ bất biến:
ImmutableMap.of()
// or:
ImmutableMap.<String, String>of()
Được cấp, không có lợi ích lớn ở đây so với Collections.emptyMap()
. Từ Javadoc :
Bản đồ này hoạt động và thực hiện tương đối Collections.emptyMap()
và được ưu tiên chủ yếu vì tính nhất quán và khả năng bảo trì mã của bạn.
2) Bản đồ mà bạn có thể sửa đổi:
Maps.newHashMap()
// or:
Maps.<String, String>newHashMap()
Maps
chứa các phương pháp nhà máy tương tự để khởi tạo các loại bản đồ khác, chẳng hạn như TreeMap
hoặc LinkedHashMap
.
Cập nhật (2018) : Trên Java 9 hoặc mới hơn, mã ngắn nhất để tạo một bản đồ trống bất biến là:
Map.of()
... sử dụng các phương pháp nhà máy tiện lợi mới từ JEP 269 . 😎