Java 包含空元素的 ArrayList 大小 []

Java ArrayList size with empty element []

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

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

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

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

即使您向列表中添加了一个空字符串,您仍然在向列表中添加一些东西。而且,这才是最重要的。

数据可能为空(甚至 null,因为 ArrayList 将允许您插入 null),但大小会增加(列表不会为空)。

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

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

只有当列表中只有一个条目并且是空字符串时,上面的行才会成功。字符串文字和 get 的反转是为了防止 NullPointerException,因为如果你将它翻转过来就会发生这种情况,并且元素 0 中有 null

检查字符串是否为空: 字符串 x = ""; 布尔 isXEmpty = x.isEmpty();

是的,空字符串实例与任何其他字符串一样是有效实例。所以它会算。

要回答您的问题 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 对你剩下的问题有很好的回答。

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

if(someList.get(0)!=null)