Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有空元素[]的Java ArrayList大小_Java_Arraylist - Fatal编程技术网

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

带有空元素[]的Java ArrayList大小,java,arraylist,Java,Arraylist,我有一个ArrayList,出于某种原因,我必须添加空字符串元素“”: ArrayList rList=new ArrayList(); rList.加上(“”); 当我读取数组列表rList的大小时,rList.size()==1和rList.isEmpty()==false 如何检查这种数组列表?空元素是否会导致大小等于1而不是空的?即使将空字符串添加到列表中,也会向列表中添加一些内容。这才是最重要的 数据可能是空的(甚至是null,因为ArrayList允许您插入null),但大小会增加

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

ArrayList rList=new ArrayList();
rList.加上(“”);
当我读取数组列表rList的大小时,rList.size()==1和rList.isEmpty()==false


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

即使将空字符串添加到列表中,也会向列表中添加一些内容。这才是最重要的

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

现在,如果您只想检查列表中是否只有这类元素(如您在注释中所述),那么可能是这样的:

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

只有当列表中只有一个条目,并且只有当它是空字符串时,上面的行才会成功。字符串literal和
get
的相反方向是防止出现
NullPointerException
,因为如果将其反向翻转,并且元素0中有
null

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


是的,空字符串实例与任何其他字符串一样是有效实例。因此它会很重要。

要回答您的问题
如何检查这种数组列表?
,您可以通过迭代来检查索引,查看您的数组列表是否包含任何特定值

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

for (String item : rList) {
    if (item.equals("")) {
        //do something
    }
}
ArrayList rList=new ArrayList();
rList.加上(“”);
用于(字符串项:rList){
如果(项等于(“”){
//做点什么
}
}
如果要检查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
}
ArrayList rList=new ArrayList();
rList.加上(“”);
rList.加上(“”);
rList.加上(“”);
int交叉检查=0;
用于(字符串项:rList){
如果(item==null){//equals()在检查null值时将抛出一个NPE
//做点什么
}else if(item.isEmpty()){
交叉检查++;
//做点什么
}
}
//在这种情况下,两者都是3
if(rList.size()==交叉检查){
//所有索引都是空字符串
}

Makoto对您剩下的问题有一个很好的答案。

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

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

是的,在数学中,只有一个空集的集合是空的。在这里,集合并不关心字符串的值,而是关心它的存在。等等,什么?空集的集合在数学上是非空的;e、 g.它是1英寸。你什么意思
我怎么能检查这种数组列表?
@DrewKennedy,我的意思是我想检查数组列表只包含“”元素,如果它包含,我会做些什么。我添加了一个与你问题的那部分相关的答案。谢谢,我想我可以按照你的建议去做。如果列表中包含一个
null
条目会发生什么?问题中没有提到索引为null。不,但这不是我的观点。我们已经建立了一个列表可以包含
null
并且是非空的;如果要确保未获得
NullPointerException
,则必须对
equals
重新排序。如果列表中不包含任何元素,则仍可能引发IndexOutOfBoundsException。
if(someList.get(0)!=null)