列表的大小与它的大小不匹配

时间:2016-08-03 02:54:58

标签: java android json arraylist

我有一个包含20个元素的列表,但它在15位置包含空值,如何从List中删除空值?

3 个答案:

答案 0 :(得分:1)

如果您不希望“null”图像出现在列表中,请执行以下操作:

for each item on a list
    if item == null then continue
    else 
        add an item to <List>Images

如果将空对象传递给图像列表,它仍会占据列表中的位置,即使此位置在技术上未初始化。

答案 1 :(得分:1)

你不能说null值意味着对象不存在,即使null不是java中的对象。

String s = null表示String s的引用未设置,但声明已完成,是一个String类型的对象,名为s。

详情请见oracle doc: The Kinds of Types and Values

public static void main(String[] args)
{
    ArrayList al = new ArrayList();
    al.add(null);
    al.add("not null");
    System.out.println(al.size()); //output 2

    //if you wanna know how many objects inside of list and isn't null
    int count=0;
    for(Object obj:al)
        if(!(obj==null)) 
            count++;
    System.out.println(count); //output 1

    System.out.println(al); //output [null, not null] ← null is exist.
}

所以在你的情况下,size()的返回值应为20。

答案 2 :(得分:1)

经过几天的研究后,我使用了来自@Lithium的solution

tourists.removeAll(Collections.singleton(null));

此代码从列表中删除所有空值。