计算Java数组长度函数的方法以及代码分析
bjpowernode 人气:0Java 中的数组可以包含多个元素,具体取决于对象的创建方式。为了让用户执行不同的操作,必须知道数组的长度。
数组长度属性:如何求出数组的长度?
为了获得 Java 数组长度,我们需要使用“数组长度属性”,如下例所示:
/** * An Example to get the Array Length is Java */ public class ArrayLengthJava { public static void main(String[] args) { String[] myArray = { "I", "Love", "Music" }; int arrayLength = myArray.length; //array length attribute System.out.println("The length of the array is: " + arrayLength); } }
输出
数组的长度为:3
必须注意,Java Array Object没有获取其长度的方法。
很多时候,我们不知道数组对象是如何创建的。对于这样的程序,我们使用一个接收数组并打印长度的函数。
/** * An Example to find the Java Array Length using a function */ public class ArrayLengthJava { private static void printArrayLength(String[] myArray) { if (myArray == null) //to check whether the array is empty or not { System.out.println("The length of the array can't be determined."); } else { int arrayLength = myArray.length; System.out.println("The length of the array is: " + arrayLength); } } public static void main(String[] args) { String[] JavaArray1 = { "I", "Love", "Music" }; String[] JavaArray2 = { "R", "S" }; String[] JavaArray3 = { "1", "2", "3", "4" }; String[] JavaArray4 = { "Java" }; printArrayLength(null); printArrayLength(JavaArray1); printArrayLength(JavaArray2); printArrayLength(JavaArray3); printArrayLength(JavaArray4); } }
输出:
无法确定数组的长度。 数组的长度为:3 数组的长度为:2 数组的长度为:4 数组的长度为:1
必须注意,在访问空对象或 null 对象的长度字段时,会引发 NullPointerException。
在 Java 中使用数组长度搜索值
数组长度有许多有用的属性,可以在编程时使用。在下面的示例中,我们使用数组的长度来遍历所有元素并确定是否存在特定值。
/** * An Example that uses Java Array Length to check if the array contains a * specific value. */ public class ArrayLengthJava { private static boolean arrayContainsValue(String[] myArray, String lookForValue) { if (myArray != null) { int arrayLength = myArray.length; for (int i = 0; i <= arrayLength - 1; i++) { String value = myArray[i]; if (value.equals(lookForValue)) { return true; } } } return false; } public static void main(String[] args) { String[] JavaArray = { "I", "Love", "Music" }; System.out.println(arrayContainsValue(JavaArray, "Love")); System.out.println(arrayContainsValue(JavaArray, "Guitar")); } }
输出:
真的 错误的
上面给出的程序将值输出为真,因为“ Love”存在于数组中,而“吉他”是不存在的元素,因此输出为假。
知识点扩展:
动态改变数组的长度
/** * Reallocates an array with a new size, and copies the contents * * of the old array to the new array. * * @param oldArray the old array, to be reallocated. * * @param newSize the new array size. * * @return A new array with the same contents. * */ private static Object resizeArray (Object oldArray, int newSize) { int oldSize = java.lang.reflect.Array.getLength(oldArray); Class elementType = oldArray.getClass().getComponentType(); Object newArray = java.lang.reflect.Array.newInstance( elementType,newSize); int preserveLength = Math.min(oldSize,newSize); if (preserveLength > 0) System.arraycopy (oldArray,0,newArray,0,preserveLength); return newArray; } // Test routine for resizeArray(). public static void main (String[] args) { int[] a = {1,2,3}; a = (int[])resizeArray(a,5); a[3] = 4; a[4] = 5; for (int i=0; i<a.length; i++) System.out.println (a[i]); }
加载全部内容