2017-03-27 6 views
1

配列の最初の1/2開始Java配列の修飾方法

私のテストケースの要素を含む場合、N> 5の方法は、長さ10の整数配列を返す長さnの整数配列を取り:

int[] a = {4, 5, 6, 7, 8, 9}; 
System.out.println(Arrays.toString(arrayModifier(a))) 

出力:

[4, 5, 6, 7, 8, 5, 6, 7, 8, 9] 

コード:

public static int[] arrayModifier(int[] a) { 
    int ctr = 0; 
    int i=0; 
    for(int i = 0;i<a.length;i++){ 
     { 
      if(a[i] >= 5) { 
       a[i] = a[10]; 
       ctr ++; 
      } 
     } 
    return ctr; 
} 
} 
+1

あなたは何をしようとしていますか? – Ravi

+0

1番目:コードがコンパイルされません。 'ctr'は' int'ですが、メソッドは 'int []'を返すべきです。 2番目:5番目のインデックスから元の配列を変更すると、次のインデックスはすべて10番目のインデックスの値になります( 'a [i] = a [10]') –

答えて

2

入力配列全体を繰り返し処理する必要はありません。最初の5つ、最後の5つの要素(それぞれインデックスa[0..4]およびa[a.length-5 .. a.length-1])に興味があります。

for (int i = 0; i < 5; i++) { 
    newArray[i] = a[i]; // first five 
    newArray[i + 5] = a[a.length - 5 + i]; // last five 
} 
0

あなたはこのように試すことができます:あなたの結果の配列は、常に10の長さを持っている場合は、あなただけのわずか5回繰り返すことができ

public static int[] arrayModifier(int[] a) { 
    int result[] = new int[10]; 
    int i=0; 
    for(i = 0; i<5; i++){ 
     result[i] = a[i]; 
     result[10 - i - 1] = a[a.length - i - 1]; 
    } 
    return result; 
} 

あなたが得るコードにそれを翻訳

。毎回2つの要素を割り当てます.1つは最初から、もう1つは終わりです。