2016-03-27 10 views
0

私は私のコードを実行するときにいくつかの問題があります。 バブルソートアルゴリズムを使ってみました。[JAVA]配列java.lang.ArrayIndexOutOfBoundsException:0エラー

これは= sort.java

package asaimenoop; 
import java.util.Scanner; 
public class sort 
{ 
    int size,d,z,swap; 
    int sortArr[] = new int[d]; 
    Scanner in = new Scanner(System.in); 

    public void getData() 
    { 

    System.out.print("Enter how many data you want to enter : "); 
    size = in.nextInt(); 

    for (int z = 0; z < size; z++) 
    { 
     System.out.print("Enter element at " + (z+1) + "th position : "); 
     sortArr[z] = in.nextInt(); 
    } 
} 

    public void BubSort() 
    { 
     getData(); 

     for (int z = 0; z < (size -1); z++) 
     { 
      for (d = 0; d < size - z - 1; d++) 
      { 
       if (sortArr[d] > sortArr[d+1]) 
       { 
        swap = sortArr[d]; 
        sortArr[d] = sortArr[d+1]; 
        sortArr[d+1] = swap; 
      } 
     }  
    } 
} 

    public void Display() 
    { 
    BubSort(); 
    System.out.println("After Sorting"); 

    for (int z = 0; z < size; z++) 
    { 
       System.out.println(sortArr[z]); 
    } 
}  
} 

私のコード クラスであり、これは私が私のコードを実行すると、それはエラーが出る= Bubsort.java

package asaimenoop; 
    public class Bubsort 
{ 
    public static void main (String[] args) 
    { 
     sort t = new sort(); 
     t.BubSort(); 
     t.Display(); 

    } 
} 

私のメインクラス クラスです。

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 
    at asaimenoop.sort.getData(sort.java:19) 
    at asaimenoop.sort.BubSort(sort.java:25) 
    at asaimenoop.Bubsort.main(Bubsort.java:9) 

要素の位置を入力したいときに突き当たりますdがゼロのデフォルト値に初期化されるので、私の悪い英語

+0

[何がjava.lang.ArrayIndexOutOfBoundsExceptionを引き起こし、どのように防止するのですか?](http://stackoverflow.com/questions/5554734/what-c​​auses-a-java-lang-arrayindexoutofboundsexception-and-どのように私はそれを防止する) –

答えて

2

して申し訳ありません

sortArr[z] = in.nextInt(); 

このコード

int size,d,z,swap; 
int sortArr[] = new int[d]; 

は長さゼロの配列としてsortArrを作成します。

要素はありません。したがって、どの要素にもアクセスしようとすると、あなたが見ている例外がスローされます。

sortArrを割り当てるステートメントを、必要な要素の数を知った後に移動する必要があります。

関連する問題