2015-11-08 52 views
-4

我試圖用for循環初始化Arrays。但我無法投射或轉換intArrays如何在java中聲明和初始化數組

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]); 
     } 
    } 
} 

我在這裏錯過了什麼?

+0

你想做什麼?你想要arr2包含什麼? –

+0

@保羅,我想初始化它有一些價值....... –

+1

如果你想用數字填充它應該是一個int []就像arr。我不明白你爲什麼把它變成陣列[]。 –

回答

1

數組的有效索引是0array.length - 1(和它的int秒(不Arrays數組 - 一個實用工具類),你需要改變

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

喜歡的東西

int[] arr2 = new int[5]; // <-- to store an int. 
for(int i=0; i<arr.length; i++) // <-- or arr2.length - 1 
{ 
    arr2[i]=arr[i]; // <-- to copy arr. 
} 

也許你想使用Arrays.copyOf(int[])

int[] arr2 = Arrays.copyOf(arr, arr.length + 1); 
// no for loop to copy needed. 
+0

這將是運行時異常,比如說ArrayIndexOutOfBoundsException。我在這裏面臨編譯時錯誤。 –

+0

編譯異常是因爲「int」不是實用程序類「Arrays」的實例。 –

+0

完美我同意。如何解決它。 –

3

Arrays不是您應該使用的對象......它只是一組處理數組的輔助方法(注意小寫「a」)。這裏的文檔:https://docs.oracle.com/javase/8/docs/api/java/util/Arrays.html

+0

數組中的數組,因爲它擴展了Object類。 public class Arrays extends Object。但我無法看到這個文件的構造。所以看起來我們不能初始化它。 –

+1

我從來沒有說過它不是一個對象......我說它是「不是你應該使用的對象」。它只包含處理數組的靜態輔助方法。 – Buddy

0
Arrays[] arr2 = new Arrays[5]; 

int[] arr2 = new int[5]; 

這就是全部進行更換。

確定不會有任何編譯時錯誤,但會有運行時錯誤 ,因爲Java不會像int []數組那樣處理數組[]。 它將被視爲與整型數組無關的另一種數據類型。