无需课堂主体即可扩展收藏

时间:2013-12-10 10:43:22

标签: java collections

我需要在我的程序集合中收集集合。所以像这样:

ArrayList<ArrayList<ArrayList<String>>>

你可以看到这看起来不太好。主要是当我使用大量的仿制药时。所以我创造了这样的东西:

public class ThreeDimensionArray extends ArrayList<TwoDimensionArray> { }

class TwoDimensionArray extends ArrayList<ArrayList<String>> { }

这个解决方案在某种程度上是坏的还是没问题?

1 个答案:

答案 0 :(得分:1)

这不是很好,但没关系。它正在掩盖你正在做的事情 - 当你创建一个具体的类来定义类型擦除在编译时变成标准List的东西时,它有点浪费。

你真的应该使用List而不是ArrayList和菱形运算符,这两个变化都会使原始更整洁:

List<List<List<String>>> 3dList = new ArrayList<>();

如果您确实沿着定义的班级路线走下去,至少使用泛型 -

class TwoDimensionArray<T> extends ArrayList<ArrayList<T>> { }

然后您可以将它用于多种类型。