0

自分自身を拡張する配列を作成する方法。ArrayListこれを行うためになどのクラスを使用したくありませんVector。代わりに、要素を追加するときにサイズを拡張する配列を生成する必要があります。これは私の先生からの質問です。

たとえば、int[]サイズを拡張する が必要だとします。

たとえば、ユーザーが学生 ID を配列に入力したいとします。固定番号がないため、配列には固定サイズがありません。この場合の学生の数。ユーザーがもう 1 つ欲しいと言うと、配列のサイズを 1 つ増やす必要があります。

どんな答えでも大歓迎です。

4

5 に答える 5

3

配列の長さは固定されており、配列のサイズを増減することはできません。

できることは、より大きなサイズの新しい配列を作成し、Arrays#copyOfソース配列を使用して値を新しい宛先配列にコピーすることです。

注:浅いコピーを行うArrays#copyOf内部呼び出し。System.copy

于 2013-07-17T10:54:33.363 に答える
2

ドキュメントからの、教師向けの便利なリンクを次に示します。

配列は、 1 つの型の一定数の値を保持するコンテナー オブジェクトです。配列の長さは、配列の作成時に確立されます。作成後、その長さは固定です。

/ .. なしでそれを行う唯一のオプションは、新しい配列を作成し、それに値をコピーすることです。ArrayListVector

于 2013-07-17T10:59:51.340 に答える
1

あなたの説明、「ユーザーがもう 1 つ欲しいと言ったら、配列のサイズを 1 つ増やす必要があります。」単なるポインター配列であり、Java の LinkedList です。

于 2013-07-17T10:59:13.937 に答える
0

先生が何と言おうと、サイズを編集した新しい配列を作成せずに配列のサイズを動的に変更する方法はありません。この要件をサポートする言語はないと思います。新しいアレイを作成し、既存のアレイをコピーするだけです。

于 2013-07-17T10:58:53.447 に答える
0

サイズを増やして配列を再初期化する必要があると思いますが、その前に、これらすべての要素を一時配列にコピーしてから、サイズが変更された元の配列に再度コピーする必要があると思います。

これが正しければ、私の先生はこれを探しているかもしれません。しかし、それはパフォーマンスを低下させます。

于 2013-07-17T11:09:38.497 に答える