3

次の行は、値が 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));

外側の配列リストには 9 つの内側の配列リストがあり、各内側の配列リストには真の値を持つ 9 つの要素があることを意味するはずです。

Java ですべてゼロを使用して ArrayList を初期化するにはどうすればよいですか? に似ています。 しかし、まったく同じではありません...

シナリオは、毎日の時刻表の毎月のリストを維持する必要があるということです。毎日の時刻表には 9 つのエントリしかないため、不変で問題ありません。ただし、毎月のリストは毎月追加する必要があります。したがって、配列リストにすることはできません。

4

2 に答える 2

7

この行形式のjavadocsを考えると、「指定されたオブジェクトの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));
于 2012-08-19T18:57:33.513 に答える
4

まず、可能な限りインターフェイスタイプを使用することをお勧めします。それはあなたを作るでしょう

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

次に、初期化ステートメントは次のようになります

public List<List<Boolean>> timeTable = Collections.nCopies(9, (Collections.nCopies(9, true)));
于 2012-08-19T18:54:14.230 に答える