在TIntHashSet和Set in Java之间是否有一个共同的父类?

时间:2015-04-16 19:48:04

标签: java collections

我试图创建一个可以使用Set或TIntHashSet的抽象类。我想让它使用两个类实现的.contains或.addAll但不幸的是我无法找到一个共同的父类。

2 个答案:

答案 0 :(得分:2)

你不能使用继承来做这件事,因为没有共同的祖先。

执行此操作的最佳方法是使用策略模式。您的抽象类包含:

SetInterfaceStrategy setInterface;

setInterface在内部存储Set或TIntHashSet,并公开您要使用的方法。在抽象对象中为正在访问的集合类型设置正确的策略。

这与使用TIntSetDecorator的建议非常相似,但允许您更多控制,因此您可以尝试避免装箱和拆箱。

答案 1 :(得分:0)

不,但您可以使用TIntSetDecoratorTIntHashSet视为Set<Integer>