-1

配列内に要素を挿入したい。サイズ5のarray1が1つあります(すべてのインデックスがいっぱいです)。サイズ6のarray2をもう1つ作成し、array1のすべての要素をarray2内に挿入しました。ここで、array2の3番目の位置に要素を挿入して、3番目の位置にある要素が4番目に移動し、4番目が5番目に移動し、5番目が6に移動するようにします。

私は以下のプログラムを開発しました。ただし、文字列インデックスが範囲外の例外を取得しています。この問題を解決するのを手伝ってください。

4

4 に答える 4

3

System.arraycopy(...)メソッドはあなたのヘルパーです。残りは自分で行います。

于 2013-01-30T07:27:33.550 に答える
2

残念ながら、配列はこのタスクに最適ではありません。配列にバインドする必要がない場合は、List (ArrayList) を使用することをお勧めします。また、toArray() メソッドもあります。

ここにチュートリアルがありますが、他にも多数のチュートリアルがあります: http://www.java-samples.com/showtutorial.php?tutorialid=234

于 2013-01-30T07:25:55.877 に答える
0

私はあなたに何かを急いで鞭打ちました。

public int[] insert(final int[] array, final int index, final int...nums){
    if(nums.length == 0){
        return array;
    }
    int[] newArray = new int[array.length + nums.length];
    int i = 0;
    for(; i < index; i++){
        newArray[i] = array[i];
    }
    for(int j = 0; j < nums.length; j++){
        newArray[i + j] = nums[j];
    }
    for(; i < array.length; i++){
        newArray[i + nums.length] = array[i];
    }
    return newArray;
}

個人的には System.arraycopy を避けるようにしています。こちらの方がより良いフローを簡単に確認できるからです。他の誰かのコードに頼るよりも、それがどのように機能するかを見ることができれば、より有益です。

于 2013-01-30T07:34:32.703 に答える
0

配列の途中に挿入する必要があり、そのサイズを動的に変更する場合は、LinkedList コレクションを使用することをお勧めします。

于 2013-01-30T07:47:39.883 に答える