2012-02-22 41 views

Trả lời

14

Theo như tôi biết, không.

Nhưng bạn có thể quấn tất cả các phím của bạn trong Equivalence.Wrapper trường hợp sử dụng các chiến lược Equivalence bạn cần:

Equivalence<K> equiv = ... 
Map<Equivalence.Wrapper<K>, V> map = ... 

map.put(equiv.wrap(key), value); 

Tất nhiên điều này có nghĩa là bạn cần một đối tượng bổ sung cho tất cả các mục trong bản đồ của bạn. Vì vậy, tôi nghĩ rằng một bản đồ thực hiện như bạn đề nghị sẽ là tốt đẹp để có.

7

Tôi biết rằng bạn đang không yêu cầu này đặc biệt, vì vậy ở đây đi:
Nếu tất cả các bạn muốn là một Map với một chức năng tùy chỉnh tương đương bạn có thể đạt được như vậy bằng cách sử dụng các tiêu chuẩn TreeMap mà phải mất một tùy chỉnh Comparator.

+0

Xin cảm ơn, đây thực sự là những gì Tôi đang tìm kiếm, nhưng vì nó không thực sự là câu trả lời cho câu hỏi tôi quyết định chấp nhận câu hỏi khác. – ebaxt

+0

Không sao cả. Vui vì tôi có thể giúp :) – Johannes

+5

Chỉ cần không mong đợi mọi thứ hoạt động chính xác nếu bạn làm điều này, như được giải thích trong TreeMap javadocs. –

Các vấn đề liên quan