带有空元素[]的Java ArrayList大小

时间:2015-01-06 20:59:55

标签: java arraylist

我有一个ArrayList,由于某种原因我必须添加空字符串元素"":

ArrayList<String> rList = new ArrayList<String>();
rList.add("");

当我读取数组列表rList的大小时,rList.size()== 1和rList.isEmpty()== false。

如何检查这种数组列表?空元素导致大小等于1而不是空吗?

4 个答案:

答案 0 :(得分:8)

即使您在列表中添加空字符串,您仍然会将某些内容添加到列表中。而且,重要的是。

数据可能为空(甚至是null,因为ArrayList会允许您插入null),但尺寸会增加(并且列表会赢得&#t; t是空的。

现在,如果您只想检查列表中是否存在 sort 元素(正如您在评论中所述),那么这可能是这样的:

if(rList.size() == 1 && "".equals(rList.get(0)) {
    // perform work
}

如果列表中只有一个条目,并且只有它是空字符串,则上述行才会成功。字符串文字和get的反面是为了防范NullPointerException,因为如果你翻过另一个方向可以发生这种情况,那就是null {{1}在元素0中。

答案 1 :(得分:1)

检查String是否为空: 字符串x =“”; boolean isXEmpty = x.isEmpty();

是的,空String实例是任何其他String的有效实例。所以它会计算在内。

答案 2 :(得分:1)

要检查空列表,请使用以下代码: 即使列表大小为1,但其get()方法仍返回null。 这样你就可以确保实际列表没有价值。

before_action

答案 3 :(得分:0)

要回答您的问题How can I check this kind of array list?,您可以检查索引以查看您的ArrayList是否包含任何特定值,方法是迭代它。

ArrayList<String> rList = new ArrayList<String>();
rList.add("");

for (String item : rList) {
    if (item.equals("")) {
        //do something
    }
}

如果你要检查ArrayList的所有索引是否为空字符串,一种方法是添加一个计数器并将其与ArrayList的大小进行比较。

ArrayList<String> rList = new ArrayList<String>();
rList.add("");
rList.add("");
rList.add("");

int crossCheck = 0;

for (String item : rList) {
    if (item == null) {//equals() will throw a NPE when checking for null values
        //do something
    } else if (item.isEmpty()) {
        crossCheck++;
        //do something
    }
}
//both are 3 in this case
if (rList.size() == crossCheck) {
    //all indices are empty Strings
}

Makoto对你提出的其他问题有一个很好的答案。