java - 在没有循环的情况下使用给定数量的空值初始化 List<T>?

标签 java list initialization

可以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/

相关文章:

java - 检查字节数组列表是否包含新的字节数组

jquery - 使用 jQuery 计算 <ul> 中的 <li> 数量

vector - 在 Rust 中初始化向量的向量

java - 如何在 Eclipse 中折叠或隐藏 setter 和 getter?

java - 如何在Java中引用方法或属性?

java - 内存重新排序如何帮助处理器和编译器?

java - 我要返回什么?

c# - 从一个列表中获取与其他列表不匹配的唯一记录?

ruby - 在一个类中混合 attr_accessor 和初始化方法

c - 结构初始化失败