我有一个ArrayList,由于某种原因我必须添加空字符串元素"":
ArrayList<String> rList = new ArrayList<String>();
rList.add("");
当我读取数组列表rList的大小时,rList.size()== 1和rList.isEmpty()== false。
如何检查这种数组列表?空元素导致大小等于1而不是空吗?
答案 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对你提出的其他问题有一个很好的答案。