2017-04-01 14 views
-5

整数の配列を作成しましたが、元の配列から偶数の配列を返そうとしましたが、 "evenArr [size ++] = arry [i];"というコードのこの部分を指し示す "ArrayIndexOutOfBoundsException"と表示されます。私は、D列のDサイズは5 知っているあなたのevenArrは、あなたが任意の値を追加しようと0秒の最大サイズを持っているので、インスタンス化、サイズ== 0で、あなたのコードでArrayIndexOutOfBoundsException、

package practice; 

import java.util.*; 

class Testt { 

    int[] myArr = {4, 6, 6, 7, 2}; 
    int size = 0; 
    int[] evenArr; 

    Testt() { 
     this.evenArr = new int[size]; 
    } 

    public int[] arr(int[] arry) { 
     for (int i = 0; i < arry.length; i++) { 
      if (arry[i] % 2 == 0) { 
       evenArr[size++] = arry[i]; 

      } 
     } 
     return evenArr; 
    } 
} 

public class ReturnStatement { 

    public static void main(String[] args) { 

     Testt t = new Testt(); 
     System.out.println("Size: " + t.myArr.length); 

     int[] result = t.arr(t.myArr); 
     for (int i = 0; i < result.length; i++) { 
      System.out.println(result + ", "); 
     } 

    } 

} 
+0

'this.evenArr'はコンストラクタでサイズ0です。 –

+2

文字「d」は「the」という単語といつ同じ意味ですか? –

+0

@LórántViktorGerber誰が3文字の時間がありますか? – rmlan

答えて

0

ありがとうございました配列にあなたはそのエラーを取得します。それをmyArr.size()にしてみてください

もっと理想的には、サイズの大きな配列にならないように動的にサイズ変更できるリストを使用してください。

+0

なぜサイズ/ 2?数字の半分以上が偶数の場合は機能しません。投稿されたコードの場合と同様です。配列に 'size'メソッドがありません –

+0

@CarlosHeuberger原因私は半分眠っている間に半分の質問を読んでいます:P – zgc7009

関連する問題