Мне нужна коллекция Set, где ее предметы будут идентифицироваться по классу предметов. Что-то вроде ReferenceIdentityMap
из Коллекции Appache , но в области действия класса, т.е. два разных экземпляра одного и того же класса должны быть идентифицированы как одинаковые в этой коллекции.
Вы знаете, это нарушение equals()/hashCode()
принципа идентичности, но при случайном использовании это имеет смысл.
Я сделал это в простой поддержке классов с Map<Class<? extends E>, E>
, но из-за простоты он не реализует Set<E>
. Может быть более элегантное решение, отлично подойдет любой декоратор Set<E>
.
Есть ли реализация такой коллекции (Apache / Google / что-то / ... Collections)?