快速问答。假设我将ArrayList bigArrayList定义为ArrayList of ArrayList。我的bigArrayList可以包含ArrayList以外的其他数据类型吗?其他数据类型,如int、String、对象或简单数组?
创建ArrayList的示例代码:
ArrayList<ArrayList<String>> bigArrayList = new ArrayList<ArrayList<String>>();
ArrayList<String> smallArrayList = new ArrayList<String>();
bigArrayList.add(smallArrayList);
int myInt = 12;
bigArrayList.add(smallArrayList); //Acceptable??此外,一旦smallArrayList添加到bigArrayList中,我将如何修改它呢?提前谢谢。
发布于 2014-03-26 10:34:30
否,ArrayList of ArrayLists不能包含除ArrayList以外的其他元素。如果尝试添加其他内容,您将得到一个编译器错误。
但是,您可以在没有任何类型信息的情况下将bigArrayList定义为ArrayList bigArrayList= new ArrayList();,并且可以在其中存储任何您想要的内容。这是非常危险的做法,因此泛型。
发布于 2014-03-26 10:51:50
在集合中使用Generics ( "< >“东西)的目的是告诉编译器,您只将特定类型(及其子类)对象放入其中。因此,您不能将其他类型放入bigArrayList中。您可以通过不使用Generics来解决这个问题,就像darijan建议的那样。他还警告说,这是不建议的。
对于在smallArrayList添加到bigArrayList之后修改它的代码,要么修改所需的代码从bigArrayList恢复smallArrayList的引用(例如bigArrayList.get(0)和bigArrayList.get(0)),要么保留smallArrayList引用并将其传递给修改代码。
顺便说一句,你想用代码达到什么目的?至少可以说,你在这里试图做的事情是相当不寻常的。
https://stackoverflow.com/questions/22658111
复制相似问题