0

重複の可能性:
配列が拡張可能でないのはなぜですか?

私のコンピュータサイエンス学校の課題ではこの言語が必要であり、私はこの言語が好きなので、私はJavaを学び始めています。ただし、Java配列は拡張可能ではないことを確認しました。つまり、使用する前に長さを宣言する必要があり、それ以上変更することはできません。

なぜなのか正確に知りたいのですが?なぜJava言語の設計者は、そのように配列を作成することを選択したのですか?パフォーマンス上の問題だと思いますが、よくわかりません。

よろしくお願いします。

4

4 に答える 4

8

その理由を正確に知りたいのですが?なぜ Java 言語の設計者は、配列自体を作成することにしたのでしょうか? パフォーマンスの問題だと思いますが、よくわかりません。

彼らは、プリミティブと配列をできるだけ単純で低レベルになるように設計しました。特別なことは何もせず、配列はオブジェクト指向設計をまったく使用しません。つまり、いくつかの有用なメソッドしかなく、配列に固有のものはありません。

これらの低レベルの構造を使用して、リストなどの高レベルのコレクションを作成するという考えでした。

于 2013-01-24T14:00:31.377 に答える
3

Java 配列は、C 配列とほぼ同じくらい単純です。C配列は、n * mバイトの割り当てられたメモリ領域にすぎません。ここで、nは配列内の要素の数で、mは単一の要素を格納するために必要なバイト数です。

次に、Java がここに追加したのはlength、おそらくtoString(). 他のすべての機能は、アレイのパフォーマンスを無効にする可能性があります。コレクションはそれを非常にうまく行います。さらに、コレクションはJava自体で記述されているため、移植可能です。

于 2013-01-24T14:01:23.663 に答える
0

なぜ Java 言語の設計者は、配列自体を作成することにしたのでしょうか?

配列は、言語によって提供されるプログラミング データ構造の 1 つです。Array も拡張可能にすると、ArrayListのようになります。

だから、私は2つの理由があると思います:

  1. Java を以前の言語と同様の基本構造にすること。
  2. 重複を削除するには。
于 2013-01-24T14:02:31.257 に答える
0

配列は連続したメモリ位置を占有し、コンパイラは配列の末尾に続く位置を配列に追加できるかどうかを確認できません。

そのため、多くの人が LinkedList または ArrayList を使用しています

この質問は答えられています

配列が拡張できないのはなぜですか?

于 2013-01-24T14:05:34.440 に答える