繁体   English   中英

声明具有多种类型的ArrayList

[英]declare an ArrayList with multiple types

我想声明一个具有多种类型的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;

或者从1-10 Params中查看javatuples http://www.javatuples.org中的元组

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM