以下行将使用值为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。
答案 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)));