Tôi có một lớp học với một số danh sách khóa-giá trị. Mỗi khóa (trong một danh sách) phải là duy nhất, vì vậy tôi sử dụng HashMap. Khi một nơi nào đó trong mã tôi thêm một mục mới vào một danh sách, tôi đang sử dụng put(K, V)
của HashMap. Tôi muốn mã của tôi để ném một ngoại lệ nếu một nỗ lực được thực hiện để thêm một mục với khóa đã tồn tại. Và, bởi vì việc bổ sung như vậy được thực hiện ở nhiều nơi trong chương trình, tôi muốn tránh việc thêm kiểm tra trong mỗi người trong số họ. Vì vậy, nó phải là chính lớp danh sách mà sẽ không cho phép thay thế cặp khóa-giá trị hiện tại.HashMap với kiểm tra tính duy nhất
Tôi đã nghĩ đến việc mở rộng lớp HashMap bằng lớp của riêng mình, lớp này sẽ thực hiện kiểm tra và ném một ngoại lệ. Tuy nhiên, put
của HashMap không ném ngoại lệ, vì vậy tôi cũng không thể làm được.
Cách tiếp cận tốt để đạt được hành vi như vậy là gì? Tôi đã sẵn sàng để thay thế HashMap với một cái gì đó tốt hơn, nhưng tôi cần nó để được nhanh chóng trong cả hai thêm và lấy các mục.
Cập nhật: Cảm ơn tất cả vì nhiều đề xuất thú vị. Vì tôi là một newbie hoàn toàn trong Java, bây giờ tôi cần phải học hỏi rất nhiều để có thể chọn một trong những tốt nhất :) Dù sao, tôi biết ơn vì nhận được rất nhiều lựa chọn trong một bữa ăn trưa-break!
Commons Bộ sưu tập không nhận được độ phơi sáng xứng đáng ... – Isaac