可以List<T>
被初始化为包含给定数量的 null
s,其中 T 是列表所属类的类型参数?我当然可以用循环来做,但想知道没有循环是否可行。
List<T> myList = new ArrayList<T>(numEls);
创建给定容量的列表,但大小为 0,所以 myList.get(x)
全部失败 x
,也是如此,例如myList.set(numEls-1,null)
.
myList = Arrays.asList(new T[numEls]);
不编译,并且
myList = (List<T>) Arrays.asList(new Object[numEls]);
在 Eclipse 中编译(带有 Unchecked cast 警告),但不使用 javac。
更新:感谢您的回答!但是,我找到了另一个非常简短的解决方案,该解决方案接近我上面最后一次尝试,它在 eclipse 和我们的自动构建系统中编译:Cast the array, not the list!
myList = Arrays.asList((T[]) new Object[numEls]);
最佳答案
如果你不需要改变列表...
List<T> result = Collections.nCopies(num, (T) null);
...或者交替
List<T> result = new ArrayList<T>(Collections.nCopies(num, (T) null));
关于java - 在没有循环的情况下使用给定数量的空值初始化 List<T>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8223177/