声明具有多种类型的ArrayList

时间:2014-02-15 19:33:13

标签: java list arraylist

我想声明一个有多种类型的ArrayList,以便更清楚地执行以下操作:

public ArrayList<Integer, String, Boolean> a = new ArrayList<Integer, String, Boolean>();

我知道该示例不起作用,因为ArrayList只能使用一个类型参数进行参数化。

HashMap可以允许我使用两个参数,但在我的情况下这还不够。

我知道我可以声明一个具有多个属性的类,并将其用作ArrayList中的参数,但我不想要这种方法。

是否有任何方法可以声明具有多种类型的List,或者使用某些internal class来执行此操作?

3 个答案:

答案 0 :(得分:2)

您可以像这样创建

public class Tuple<A, B, C> {
    public A First;
    public B Second;
    public C Third;    
}

你宣布它是这样的

List< Tuple <Integer, String, Bool> listOfTuple;

或者从1-10 Params

中查看javatuples http://www.javatuples.org中的元组

答案 1 :(得分:1)

Guava中的Table结构似乎很好地满足了您的所有需求。

答案 2 :(得分:0)

你可以使用多态,创建一个接口让我们说ListElement。要添加到此列表的所有对象都必须实现此接口。然后只使用ListElement的ArrayList

另一种可能性(因为你使用像Integer这样的类)你可以使用Object的ArrayList,因为所有对象都扩展了Object类。