将空值添加到arraylist

Nic*_*hop 40 java arraylist

即使它有一个泛型类型参数,我可以添加nullArrayList吗?

例如.

ArrayList<Item> itemList = new ArrayList<Item>();
itemList.add(null);
Run Code Online (Sandbox Code Playgroud)

如果是的话,会的

itemsList.size();
Run Code Online (Sandbox Code Playgroud)

返回1还是0?

如果我可以为a添加nullArrayList,我是否只能遍历包含这样的项的索引?

for(Item i : itemList) {
   //code here
}
Run Code Online (Sandbox Code Playgroud)

或者每个循环还会循环遍历列表中的空值吗?

小智 43

是的,您始终可以使用null而不是对象.请小心,因为某些方法可能会抛出错误.

这将是1.

null可以在for循环中考虑因素,但你可以使用

 for(Item i : itemList) {
        if (i!= null) {
               //code here
        }
 }
Run Code Online (Sandbox Code Playgroud)

  • 例如,如果提供的值为 null,则“List.of(...)”将抛出异常。这是愚蠢的——只是把它放在那里。列表中存在空值是完全合法的! (12认同)
  • `List.of(...)` 会抛出异常,但是 `Stream.of(null, "a").toList()` 工作得很好。 (3认同)

Era*_*ran 26

你可以添加空值ArrayList,你必须在循环中检查空值:

for(Item i : itemList) {
   if (i != null) {

   }
}
Run Code Online (Sandbox Code Playgroud)

itemsList.size();会考虑null到.

 List<Integer> list = new ArrayList<Integer>();
 list.add(null);
 list.add (5);
 System.out.println (list.size());
 for (Integer value : list) {
   if (value == null)
       System.out.println ("null value");
   else 
       System.out.println (value);
 }
Run Code Online (Sandbox Code Playgroud)

输出:

2
null value
5
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,我猜 .size() 方法也会考虑空值。 (2认同)