如何在java中声明和初始化数组

如何在java中声明和初始化数组,java,arrays,Java,Arrays,我试图使用for循环初始化数组。但是我不能将int转换为数组 import java.util.Arrays; public class InitalizeArrays { /** * @param args */ public static void main(String[] args) { int[] arr = {1, 2, 5, 8}; //this one is fine Arrays[]

我试图使用for循环初始化
数组。但是我不能将
int
转换为
数组

import java.util.Arrays;

public class InitalizeArrays {

    /**
     * @param args
     */
    public static void main(String[] args) {
        int[] arr = {1, 2, 5, 8}; //this one is fine            
        Arrays[] arr2 = new Arrays[5];

        for(int i=0; i<=arr2.length; i++)
        {
            arr2[i]=i;   //How to initalize Arrays 
            System.out.println(arr2[i]);
        }
    }
}
导入java.util.array;
公共类初始化数组{
/**
*@param args
*/
公共静态void main(字符串[]args){
int[]arr={1,2,5,8};//这个很好
Arrays[]arr2=新数组[5];

对于(int i=0;i数组的有效索引是
0
array.length-1
(它是
int
s的数组(不是一个实用类)。您需要更改

Arrays[] arr2 = new Arrays[5];
for(int i=0; i<=arr2.length; i++)

数组
不是您应该使用的对象…它只是一组用于处理数组的辅助方法(请注意小写字母“a”)。以下是文档:

应该由

int[] arr2 = new int[5];
就这些

确保不会有任何编译时错误,但会有运行时错误 因为Java不会像对待int[]数组那样对待数组[]。
它将被视为与整数数组无关的另一种数据类型。

这将是运行时异常,比如ArrayIndexOutOfBoundsException。我在这里遇到编译时错误。编译异常是因为
int
不是实用程序类
arrays
的实例。数组位于对象中,因为它扩展了对象类.public类数组扩展了对象。但根据文档,我看不到该对象的构造函数。因此,看起来我们无法初始化它。我从未说过它不是对象……我说过它“不是您应该使用的对象”。它只包含用于处理数组的静态帮助器方法。你想做什么?你想让arr2包含什么?@Paul,我想用一些值初始化它。……如果你想用数字填充它,它应该是一个int[],就像arr一样。我不明白你为什么要将它设为数组[].好的,保罗。我想你是对的。还有一个问题。为什么我能在这里为Aarray[]创建大小为5的对象。我现在了解了整个场景。
int[] arr2 = Arrays.copyOf(arr, arr.length + 1);
// no for loop to copy needed.
Arrays[] arr2 = new Arrays[5];
int[] arr2 = new int[5];