Tôi đã đọc rất nhiều bài đăng trong một giờ qua, nhưng tôi vẫn chưa rõ ràng về khái niệm sử dụng các đối tượng bất biến như các khóa trong Hashmap. Tôi có một hashmap có khóa của nó như là một String. Giá trị trong hashmap là MyStore, nơi MyStore đại diện cho thông tin về các cửa hàng mà tôi sở hữu. Chuỗi đại diện cho địa chỉ. Trong mã của tôi, logic tôi có là, đầu tiên tôi nhìn vào bản đồ cho khóa đó, nếu hiện tại -> nhận được giá trị của nó, nếu nó không có mặt, đặt nó trong hashmap. Quản lý của tôi chỉ nói với tôi chìa khóa sẽ thay đổi trong tương lai, đó là địa chỉ của các cửa hàng của tôi sẽ thay đổi trong tương lai. Ông nói trong trường hợp đó, logic của tôi kiểm tra đầu tiên nếu chìa khóa tồn tại sẽ không hoạt động. Tôi không hiểu ý anh ấy ở đây. Tôi muốn hiểu các điểm dưới đây rất rõ ràng -Chuỗi là khóa trong hashmap
- Sự khác biệt giữa các khóa có thể thay đổi và không thay đổi được cho một băm.
- Điều gì xảy ra nếu bạn sử dụng khóa không thay đổi có thể thay đổi? - Tôi biết điều này không có ý nghĩa, nhưng tôi muốn hiểu rõ những gì người quản lý của tôi đang nói ở đây.
- Một số bài viết nói về chuỗi nếu được sử dụng làm khóa trong bộ nhớ cache băm hashcode của chúng -Điều này có nghĩa là gì?
- Nếu cho phép nói rằng tôi đã sử dụng các đối tượng có thể thay đổi làm khóa trong hashmap của tôi đã triển khai hashcode và bằng, thì nó có hoạt động không? Tôi giả định nó sẽ bởi vì nếu thay đổi quan trọng, phương pháp chứa sẽ xem xét nếu khóa là hiện tại. Nếu không có mặt, nó sẽ đặt mục nhập để bạn có thể nhận được trong tương lai.
Tôi không có ý định tạo một bài đăng trùng lặp nếu điều này đã được thảo luận trước đây. Nếu tôi bỏ lỡ đọc bài đăng có câu trả lời cho tất cả các câu hỏi của tôi, hãy chỉ cho tôi câu hỏi đó. Nếu không, vui lòng giải thích các thuật ngữ của giáo dân về các câu hỏi trên tôi có để nó có ích trong tương lai cho những người đọc khác :). Vui lòng chỉnh sửa chủ đề của bài đăng của tôi để trong tương lai nếu có ai có câu hỏi tương tự, họ truy cập trực tiếp tại đây :)
này nên trả lời câu hỏi của bạn http://stackoverflow.com/questions/214714/mutable-vs-immutable-objects – Spencer
Bao giờ thay đổi băm mã ngắt hợp đồng HashMap của. Trong trường hợp này, bạn có thể muốn [ánh xạ theo tham chiếu đối tượng] (http://docs.oracle.com/javase/1.5.0/docs/api/java/util/IdentityHashMap.html). Hoặc chuyển đổi bản đồ thành quan hệ đối tượng-thuộc tính. –