我需要 Set 集合,其中的项目将由项目类标识。类似于Appache CollectionsReferenceIdentityMap
的东西,但在类范围内,即同一类的两个不同实例必须在此集合中标识为相同。
你知道,这违反了equals()/hashCode()
身份原则,但偶尔使用它是有道理的。
我已经在简单的类支持中做到了这一点Map<Class<? extends E>, E>
,但由于简单,它没有实现Set<E>
。可能有一个更优雅的解决方案,任何装饰器Set<E>
都会很棒。
那里有这样的集合的实现吗(Apache/Google/something/... Collections)?