有没有办法拥有一个"main"数组列表?



假设我有

ArrayList<Citizen> citizen1 = new ArrayList<Citizen>();
ArrayList<Citizen> citizen2 = new ArrayList<Citizen>();
ArrayList<Citizen> citizen3 = new ArrayList<Citizen>();

有可能有一个能把它们都折衷掉的数组吗?

List<List<Citizen>> mainList= new ArrayList<>();

您可以使用列表。

还需要考虑以下几点。

我建议在创建列表对象时,在左侧使用"List",而不是"ArrayList"。最好绕过接口"List",因为如果以后您需要更改为使用类似Vector的东西(例如,您现在需要同步列表(,则只需要使用";新的";陈述无论您使用哪种列表实现,例如Vector or ArrayList,您仍然只是传递list。

在ArrayList构造函数中,您可以将列表留空,它将默认为某个大小,然后根据需要动态增长。但是,如果你知道你的列表可能有多大,有时你可以节省一些性能。例如,如果你知道你的文件中总是有500行,那么你可以这样做:

您可以有一个公民列表,如下所示:List<List<Citizen>>= new ArrayList<>()

可以使用ListCollectionaddAll()方法将另一个列表的所有元素添加到一个列表中。

如果至少使用Java8,您可以使用Streams API做各种事情:Stream.of()Stream.concat(),也许还有其他。

最新更新