在Java 6中的1个语句中,检查数组是否为list_urlquery = urlquery_partition.strip().split(",")
for i in range(len(list_urlquery)):
list_urlquery[i] = "(" + str(list_urlquery[i]).strip() + ", '" + str(
file.filename).strip() + "," + str(PATH_ID).strip() + "')"
insert_query = 'INSERT INTO tbl_ma (theid, thefilename, thepathid) VALUES %s'
psycopg2.extras.execute_values(cursor, insert_query, list_urlquery, template=None, page_size=100)
print (list_urlquery)
值或数组内容是null
的最佳方法是什么:
null
答案 0 :(得分:2)
首先,检查数组本身是否不是null
。如果数组是null
,则没有理由迭代其元素,因为Java会在访问它时抛出NullPointerException
:
if (myArray != null) {
// ...
}
然后在条件体内迭代遍历其所有元素并检查其中一个元素是否为null
。
boolean hasNull = false;
for (int i=0; i<myArray.length; i++) {
if (myArray[i] == null) {
hasNull = true;
break; // to terminate the iteration since there is no need to iterate more
}
}
这个单行解决方案(感谢@Napstablook的警告)。如果数组本身为true
或其中一个元素为null
,则条件评估为null
:
if !(myArray != null && myArray[0] != null && myArray[1] != null) { ... }
请注意&&
运算符的作用是,如果左侧被评估为false
,它会停止评估其余条件,因为它不会影响结果。同样||
但true
。但是,我建议您避免使用此解决方案,因为索引可能会溢出。更好地使用上面提到的for-loop
。
答案 1 :(得分:1)
要检查任何值,我会使用allMatch
。首先检查数组!= null也很重要,否则你会得到一个Exception。
if (array == null || Arrays.stream(array).allMatch(Objects::isNull))
请注意,这不适用于版本8之前的java,OP在我发布答案后编辑了他的要求
答案 2 :(得分:0)
检查Array是否为null:
String array[] = null;
if (array == null) {
System.out.println("array is null");
}
检查数组是否为空:
array = new int[0];
if (array.length == 0) {
System.out.println("array is empty");
}
同时检查null:
int[] array = ...;
if (array.length == 0) { } // no elements in the array
if (array == null || iarray.length == 0) { }
答案 3 :(得分:0)
试试这个
if (myArray == null || Arrays.stream(myArray).allMatch(element-> element==null)) {}
编辑 - 对于java 6,我真的不会在一行中看到这种情况。如果不需要一行,你可以试试这个
boolean isNull = true;
if(myArray==null){
System.out.println("array is null");
}else{
for(Integer element: myArray){
if(element!=null){
System.out.println("array is not null");
isNull=false;
break;
}
}
if(isNull)
System.out.println("Array is null");
}
答案 4 :(得分:0)
例如这个
boolean isNullOrContainsNull = array == null || Arrays.asList(array).contains(null);
检查一行是否为数组为空或包含空元素
如果要检查数组是空还是空还是所有元素都为空,请执行
boolean containsNothingUseful = array == null
|| array.length == 0
|| !new HashSet<String>(Arrays.asList(array))
.retainAll(Arrays.asList((String)null));
(假设String[]
数组)
使用Collection#retainAll()
方法,当存在其他值时返回true,即&#34; containsOnly&#34;
使用这个衬里实际上是相当低效的,并且最好使用下面的方法,它不会创建大量临时对象和变异集合等。
public static boolean containsNothingUseful(String[] array) {
if (array == null || array.length == 0)
return true;
for (String element : array) {
if (element != null)
return false;
}
return true;
}
// ...
if (containsNothingUseful(myArray)) { .. }
答案 5 :(得分:0)
相反Itreating Manullay数组,重新使用现有的集合。
请找到示例代码:
public static void main(String[] args) {
Integer[] array = new Integer[3];
array[0] = 1;
array[1] = null;
array[2] = 2;
System.out.println(Arrays.asList(array).contains(null));
}