yay*_*zis 5 java initialization arraylist
我正在创建一个ArrayList它的大小40
ArrayList<Integer> myList= new ArrayList<>(40);
Run Code Online (Sandbox Code Playgroud)
如何myList用零初始化0?我试过这个
for(int i=0; i<40; i++){
myList.set(i, 0);
}
Run Code Online (Sandbox Code Playgroud)
但我明白了
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
Run Code Online (Sandbox Code Playgroud)
Cod*_*roc 13
您可以使用Collections.fill(List<? super T> list,T obj)方法用零填充列表.在您的情况下,您在new ArrayList<>(40)此处设置40的不是列表的长度,而是初始容量.您可以使用数组来构建包含全零的列表.签出以下代码.
ArrayList<Integer> myList= new ArrayList<>(Arrays.asList(new Integer[40]));
Collections.fill(myList, 0);//fills all 40 entries with 0"
System.out.println(myList);
Run Code Online (Sandbox Code Playgroud)
OUTPUT
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
Run Code Online (Sandbox Code Playgroud)
小智 9
试试Collections.nCopies():
ArrayList<Integer> myList = new ArrayList<Integer>(Collections.nCopies(40, 0));
Run Code Online (Sandbox Code Playgroud)
要么:
List<Integer> myList = Collections.nCopies(40, 0);
Run Code Online (Sandbox Code Playgroud)
见文档