我想声明一个有多种类型的ArrayList
,以便更清楚地执行以下操作:
public ArrayList<Integer, String, Boolean> a = new ArrayList<Integer, String, Boolean>();
我知道该示例不起作用,因为ArrayList
只能使用一个类型参数进行参数化。
HashMap
可以允许我使用两个参数,但在我的情况下这还不够。
我知道我可以声明一个具有多个属性的类,并将其用作ArrayList
中的参数,但我不想要这种方法。
是否有任何方法可以声明具有多种类型的List
,或者使用某些internal class
来执行此操作?
答案 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类。