可以將List<T>
初始化爲包含給定數量的null
s,其中T是列表所屬類別的類型參數?我肯定可以用循環做到這一點,但要知道是否有可能。初始化列表<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(與未檢查的投警告),而不是用javac。
更新:謝謝你的答案!然而,我發現另一個相當短的解決方案接近我上面的最後一次嘗試,它在eclipse和我們的自動編譯系統中編譯:投射數組,而不是列表!那麼
List<String> list = new ArrayList<String>(Arrays.asList(new String[100]));
for(String string : list){
System.out.println(string);
}
,你可以寫一個層次:
myList = Arrays.asList((T[]) new Object[numEls]);
爲什麼你需要解決這個沒有循環?這是非常不合理的。只需調用'ensureCapacity',然後* n *次'add(null)'即可。 –
@RolandIllig我沒有_need_解決它沒有循環,我只想知道它是否可能。 –
爲什麼要用這麼長的時間來避免單線循環,用更復雜的東西代替呢?如果你知道你想包裝一個Object []的大小。 –