你好我试图在java中声明一个数组,但我不希望数组具有特定的大小,因为每次大小必须不同.
我使用了这个声明:int [] myarray5;
但是当我尝试下面的代码时,myarray5上有一个错误
for(int i=0; i<=myarray1.length - 1; i++){
for (int j=0; j<=myarray2.length - 1; j++){
if (myarray1[i] == myarray2[j]){
myarray5[k] = myarray2[j];
k++;
}
}
}
Run Code Online (Sandbox Code Playgroud)
以及何时打印阵列:
for (int i=0; i<=myarray3.length-1; i++){
System.out.print(myarray3[i]+",");
}
Run Code Online (Sandbox Code Playgroud)
Den*_*ich 15
有一个NullPointerException因为你声明但从未初始化数组.
您可以动态声明一个数组,如下所示.
int size = 5; // or anyother value you want
int[] array = new int[size];
Run Code Online (Sandbox Code Playgroud)
或者你使用一个列表.这允许动态改变大小.例如:
List<Integer> list = new ArrayList<>();
list.add(5); //adds number 5 to the list
int number = list.get(0); // Returns Element which is located at position 0 (so in this example in number will be "5");
Run Code Online (Sandbox Code Playgroud)
我不希望数组具有特定大小,因为每次大小都必须不同。
Java 中的数组具有固定大小。一旦声明,你不能改变它。如果你试图强迫你的方式。您每次都在创建一个新数组。请不要array1以arrayN任何理由创建。
如果您想要动态大小,可以拉伸和收缩。您正在寻找ArrayList. Java 中的 ArrayList 很容易使用。
ArrayList<Type> arrayList = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)
或者
List<Type> arrayList = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)
但是当我尝试下面的代码时,myarray5 出现错误
我想那是ArrayIndexOutOfBoundsException因为你的循环基于 array1 的长度,但你的其他数组array5有不同的长度。