将空值添加到arraylist

时间:2014-11-24 14:26:36

标签: java arraylist

我可以将null值添加到ArrayList,即使它具有泛型类型参数吗?

例如

ArrayList<Item> itemList = new ArrayList<Item>();
itemList.add(null);

若然,

itemsList.size();

返回1还是0?

如果我可以将null值添加到ArrayList,我是否可以只遍历包含此类项目的索引?

for(Item i : itemList) {
   //code here
}

或者每个循环是否也循环遍历列表中的空值?

3 个答案:

答案 0 :(得分:41)

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

这将是1。

也会在for循环中考虑null,但你可以使用

 for(Item i : itemList) {
        if (i!= null) {
               //code here
        }
 }

答案 1 :(得分:24)

您可以向ArrayList添加空值,并且您必须在循环中检查空值:

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

   }
}

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);
 }

输出:

2
null value
5

答案 2 :(得分:0)

您可以创建Util类:

public final class CollectionHelpers {
    public static <T> boolean addNullSafe(List<T> list, T element) {
        if (CollectionUtils.isEmpty(list) || element == null) {
            return false;
        }

        return list.add(element);
    }
}

然后使用它:

Element element = getElementFromSomeWhere(someParameter);
List<Element> arrayList = new ArrayList<>();
CollectionHelpers.addNullSafe(list, element);