如何初始化arraylist的arraylist

时间:2012-08-19 18:50:34

标签: java data-structures

以下行将使用值为true的9个元素初始化arraylist。

public ArrayList<Boolean> timeTable = new ArrayList<Boolean>(Collections.nCopies(9, true));

但是我如何初始化arraylist的arraylist?

public ArrayList<ArrayList<Boolean>> timeTable = new ArrayList<ArrayList<Boolean>>(Collections.nCopies(9, true));

它应该意味着外部的arraylist有9个内部arraylist,每个内部arraylist有9个具有真正价值的元素。

How can I initialize an ArrayList with all zeroes in Java?相似 但不完全相同......

情景是我需要维护每月的每日时间表清单。现在每日时间表只有9个条目,所以不变的很好。但每月需要附上月度清单。所以它不能是一个arraylist。

2 个答案:

答案 0 :(得分:7)

给定这个行格式java docs:“返回由指定对象的n个副本组成的不可变列表”

public ArrayList<Boolean> timeTable = new ArrayList<Boolean>(Collections.nCopies(9, true));

public ArrayList<ArrayList<Boolean>> timeTableLists = new ArrayList<ArrayList<Boolean>>(Collections.nCopies(9, timeTable));

答案 1 :(得分:4)

首先,建议尽可能使用接口类型。这会让你的

ArrayList<ArrayList<Boolean>> -> List<List<Boolean>>. 

然后,初始化语句将变为

public List<List<Boolean>> timeTable = Collections.nCopies(9, (Collections.nCopies(9, true)));