我有一个LinkedList
-
List<String> tables = new LinkedList<String>();
有时,tables
列表看起来像,意味着它里面会包含所有空字符串值 -
[null, null]
有没有直接的方法来确定tables
列表是否包含所有元素null
字符串,然后返回true,否则返回false。
我能想到的一种方法就是继续迭代它,看看它是否有空字符串,然后相应地返回true或false。
更新: -
public static void main(String[] args) {
String table_1 = null;
String table_2 = "hello";
List<String> tables = new LinkedList<String>();
tables.add(table_1);
tables.add(table_2);
boolean ss = isAllNull(tables);
System.out.println(ss);
}
public static boolean isAllNull(Iterable<?> list) {
for (Object obj : list) {
if (obj != null)
return false;
}
return true;
}
答案 0 :(得分:2)
如果你可以使用Guava库:
Iterables.all(input, Predicates.isNull());
使用static import
,它将变得更具可读性:
import static com.google.common.base.Predicates.isNull;
import static com.google.common.collect.Iterables.all;
Iterable<?> input = ...
all(input, isNull())
答案 1 :(得分:0)
你是对的,这是解决方案。您可以检查是否存在任何非null并在第一次出现时返回false。
String table_1 = null;
String table_2 = null;
List<String> tables = new LinkedList<>();
tables.add(table_1);
tables.add(table_2);
for (String table : tables) {
if (table != null)
{System.out.println("False");}
}
答案 2 :(得分:0)
是的,如果你把它作为实用工具类的一部分,你认为是好的,更好的
public static boolean isAllNull(Iterable<?> list){
for(Object obj : list){
if(obj != null)
return false;
}
return true;
}
请注意,此util接受Iterable
接口,以便在更广泛的范围内工作。
答案 3 :(得分:0)
没有第三方图书馆:
Set set = new HashSet(tables);
boolean allNull = set.size() == 1 && set.iterator().next() == null;