Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.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 使用前初始化int[]的任何其他方法_Java_Arrays - Fatal编程技术网

Java 使用前初始化int[]的任何其他方法

Java 使用前初始化int[]的任何其他方法,java,arrays,Java,Arrays,谁能告诉我为什么just way会起作用而不是其他人 另外,如果我想在运行时生成数组大小,那么无论如何都可以生成 public class RevesingSimpleArray { public static void main(String[] args) { int[] arr = { 1, 2, 3, 4, 5 }; // 1 way will work int[] arr2 = { 0, 0, 0, 0, 0 };

谁能告诉我为什么just way会起作用而不是其他人

另外,如果我想在运行时生成数组大小,那么无论如何都可以生成

public class RevesingSimpleArray {

    public static void main(String[] args) {
        int[] arr = { 1, 2, 3, 4, 5 };
        // 1 way will work
        int[] arr2 = { 0, 0, 0, 0, 0 };
        // 2 way not work
        // int[] arr2 = {};
        // 3 way not work
        // int[] arr2 = null;

        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
            arr2[arr.length - (i + 1)] = arr[i];
        }
        System.out.println(" leangth " + arr.length);

        System.out.println("Printing into reverse form --");
        for (int j = 0; j < arr2.length; j++) {
            System.out.println(arr2[j]);
        }
    }
}
public class revisingsimplearray{
公共静态void main(字符串[]args){
int[]arr={1,2,3,4,5};
//一种方法行得通
int[]arr2={0,0,0,0,0};
//2路不通
//int[]arr2={};
//3路不通
//int[]arr2=null;
对于(int i=0;i
我是java新手,尝试了解一些基本知识。
提前感谢您的帮助。

您可以在运行时创建阵列:

int size = 5;
int[] array = new int[size];
在通过索引访问数组元素之前,需要初始化数组

//  int[] arr2 = null; // actually it gives `NullPointerException`
Exception in thread "main" java.lang.NullPointerException
在访问数组的函数之前,需要初始化数组

谁能告诉我为什么just way会起作用而不是其他人

以下是几种方法

int[] myIntArray = new int[3];
int[] myIntArray = {1,2,3};
int[] myIntArray = new int[]{1,2,3};
另外,如果我想在运行时生成数组大小,我是否能够生成它 无论如何

是这样的,初始化时获取大小并分配

public static void main(String[] args) {
        Scanner n = new Scanner(System.in);
        int ne = 0;
        System.out.print("Enter Number of Elements to create array with");
        ne = n.nextInt();
        int num[] = new int[ne];
    }

JLS()将帮助您int[]arr2=新int[5];也许你正在寻找这个…谢谢@andre它真的很有用你的
x
来自哪里,为什么其他方法不起作用-int[]arr2={};int[]arr2=null,我两个都试过了,你能解释一下吗。@Avenger出了什么问题,似乎没问题,没有编译问题。我在评论中提到的两个初始化都已经完成了,但是我有一个错误null指针,但为什么它是基元数据类型的数组而不是包装类类型,所以为什么我在这种情况下使用空指针。你的答案是正确的,但我问了一些我不舒服的问题。谢谢您的帮助。@Avenger,因为访问空元素或对其调用某些内容将导致
NPE
。在循环中,您试图访问空对象的
arr.length
,这可能是问题的原因。这与包装类没有任何关系,因为它是一个数组。
public static void main(String[] args) {
        Scanner n = new Scanner(System.in);
        int ne = 0;
        System.out.print("Enter Number of Elements to create array with");
        ne = n.nextInt();
        int num[] = new int[ne];
    }