3 回答

TA貢獻1884條經驗 獲得超4個贊
從 Java 8 開始,您可以使用 生成空列表列表。Stream.generate
import java.util.*;
import java.util.stream.*;
public class ListOfLists {
public static void main(String[] args) {
List<List<Integer>> bucket = listOfList(10);
bucket.get(5).add(5);
System.out.println(bucket);
}
public static <T> List<List<T>> listOfList(int size) {
return Stream.generate(ArrayList<T>::new).limit(size).collect(Collectors.toList());
}
}
輸出
[[], [], [], [], [], [5], [], [], [], []]

TA貢獻1844條經驗 獲得超8個贊
System.out.println(bucket.get(5).add(5));
您需要了解這行代碼,您正在嘗試從數組列表“存儲桶”中訪問第5個元素,但是您是否在存儲桶中添加了任何元素(在這種情況下,該元素是另一個數組列表)ArrayList
除非您添加元素,否則無法訪問它們,因為它們不存在,因此您會在嘗試訪問第5個元素時看到ArrayOutOfBoundException
bucket.get(5)
你可能想通過ArrayList的javadoc https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html

TA貢獻1811條經驗 獲得超4個贊
法典:
public class Example {
public static void main(String[] args) {
ArrayList<ArrayList<Integer>> bucket = new ArrayList<ArrayList<Integer>>();
//initial capacity of the nested arraylist to 5.
System.out.println(bucket.add(new ArrayList<>(5)));
ArrayList<Integer> element = new ArrayList<>();
element.add(5);
bucket.add(0, element);
System.out.println(bucket);
}
}
輸出:
true
[[5], []]
添加回答
舉報