首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >向arraylist添加空值

向arraylist添加空值
EN

Stack Overflow用户
提问于 2014-11-24 22:26:36
回答 3查看 169K关注 0票数 57

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

例如:

代码语言:javascript
复制
ArrayList<Item> itemList = new ArrayList<Item>();
itemList.add(null);

如果是这样,will

代码语言:javascript
复制
itemsList.size();

返回1还是0?

如果我可以将null值添加到ArrayList中,那么我是否可以只遍历包含以下项的索引?

代码语言:javascript
复制
for(Item i : itemList) {
   //code here
}

或者,for each循环是否也会遍历列表中的空值?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-11-24 22:32:18

是的,您可以始终使用null而不是object。只是要小心,因为有些方法可能会抛出错误。

它将是1。

此外,在null循环中也会考虑到for s,但您可以使用

代码语言:javascript
复制
for (Item i : itemList) {
    if (i != null) {
       //code here
    }
}
票数 62
EN

Stack Overflow用户

发布于 2014-11-24 22:28:02

您可以将空值添加到ArrayList中,并且必须检查循环中的空值:

代码语言:javascript
复制
for(Item i : itemList) {
   if (i != null) {

   }
}

itemsList.size();会将null考虑在内。

代码语言:javascript
复制
 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);
 }

输出:

代码语言:javascript
复制
2
null value
5
票数 32
EN

Stack Overflow用户

发布于 2018-01-24 21:53:57

你可以创建Util类:

代码语言:javascript
复制
public final class CollectionHelpers {
    public static <T> boolean addNullSafe(List<T> list, T element) {
        if (list == null || element == null) {
            return false;
        }

        return list.add(element);
    }
}

然后使用它:

代码语言:javascript
复制
Element element = getElementFromSomeWhere(someParameter);
List<Element> arrayList = new ArrayList<>();
CollectionHelpers.addNullSafe(list, element);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27107072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档