我想声明一个具有多种类型的ArrayList
,以便更清楚地执行以下操作:
public ArrayList<Integer, String, Boolean> a = new ArrayList<Integer, String, Boolean>();
我知道该示例不起作用ArrayList
因为它只能用一个类型参数进行参数化。
HashMap
可以允许我使用两个参数,但这在我的情况下还不够。
我知道我可以声明一个具有多个属性的类并将其用作ArrayList
中的参数,但我不想要这种方法。
难道没有任何方法可以声明具有多种类型的List
,或者使用某些internal class
来执行此操作?
你可以像这样创建它
public class Tuple<A, B, C> {
public A First;
public B Second;
public C Third;
}
你这样声明
List< Tuple <Integer, String, Bool> listOfTuple;
或者查看这个 javatuples http://www.javatuples.org 来自 1-10 个参数的元组
番石榴中的表格结构似乎很好地满足您的所有需求。
你可以使用多态性,创建一个接口,比如说ListElement。要添加到此列表的所有对象都必须实现此接口。然后只需使用 ListElement 的 ArrayList
另一种可能性(因为你使用的是像Integer这样的类),你可以使用对象的ArrayList,因为所有对象都扩展了类Object。