JavaのVectorクラスには、格納できる要素の量に制限がありますか?私はそれが自動的に成長し、任意の量の要素を格納することができるはずですが、実際に格納できる要素の量を制限する制限はありますか?メモリ不足のような最も明白な制限を除きます。JavaでVectorの要素の量に制限はありますか?
2
A
答えて
7
2つの制限があります
- メモリ
- 量最大整数値(
Integer.MAX_VALUE
)、基礎となる配列内の要素は整数指標
サイドノートによってインデックス付けされているので:Vectorを使用する予定の場合は、使用しないでください。代わりにArrayListを使用してください。これは同期されておらず、Collectionsフレームワークの他の部分とうまく適合します。まず
5
Vector
のsize()
は、32ビット符号付き整数でint
、あるので、要素の最大数は2 ** 31-1又はおおよそ21億の要素です。
5
、あなたは、Java 1.1を使用している場合を除き、あなたがむしろVector
より通常使用ArrayList<E>
必要があります。しかし、どちらも同じ制限があります。
基本的に、それらは配列によってバッキングされており、現在の "実際の"長さの値はint
です。したがって、それに基づいて、Integer.MAX_VALUE
以上のエントリを格納することはできません。しかし、とにかくこの点に達する前に、あなたはメモリが足りなくなる可能性が非常に高いです。実際には、私が見ていArrayList
の実装はとにかくやや小さく制限されてい
、内部的に課さ:
/**
* The maximum size of array to allocate.
* Some VMs reserve some header words in an array.
* Attempts to allocate larger arrays may result in
* OutOfMemoryError: Requested array size exceeds VM limit
*/
private static final int MAX_ARRAY_SIZE = Integer.MAX_VALUE - 8;
関連する問題
- 1. iPhoneのドキュメントフォルダの容量に制限はありますか?
- 2. テレグラムチャットのメモリ容量制限はありますか?
- 3. データベースに接続する量を制限する必要がありますか?
- 4. Javaプログラムの文字列サイズに制限はありますか?
- 5. 剣道リストビューに表示できるデータ量に制限はありますか?
- 6. Lucene.NETでスローするテキストの量に制限がありますか。
- 7. JavaのJPanelの制限はありますか?
- 8. Java ThreadLocalRandom.current()。nextGaussian()には制限がありますか?
- 9. PerlNetの制限はありますか?
- 10. onSaveInstanceStateの制限はありますか?
- 11. beforeRouteLeaveの制限はありますか?
- 12. カレンダーエクステンダーの制限はありますか?
- 13. mapreduce(JAVA)ジョブで生成されるレコードの量を制限する方法はありますか?
- 14. ios10サファリのhtmlページにビデオ要素の制限があります
- 15. プロセスのCPU使用量を制限する方法はありますか?
- 16. BITS/BYTESの要求制限はありますか?
- 17. LUTに制限があります:無制限の次元で
- 18. javaのPreparedStatement.addBatchには何らかの制限がありますか?
- 19. 1ページにできるキャンバス要素の数には実際的な制限がありますか?
- 20. Eventbriteのユーザーあたりの注文量を制限する方法はありますか?
- 21. CSS:HTML要素が持つことができるクラスの数に制限はありますか?
- 22. 要素の背景イメージを変更できる頻度には制限がありますか?
- 23. RedisのリーダーボードをN個の要素に制限する方法はありますか?
- 24. のJava - Javaではシャフリング要素と出力する特定量
- 25. textareaは無制限で、制限はありません
- 26. Rのdata.frameのVector要素に直接アクセスできますか?
- 27. AJAXアップローダの大容量PHP iniメモリ制限が必要な場合、回避する必要があります。
- 28. 配列への入力量を制限する方法は? (Java)
- 29. Browserifyには何らかの制限がありますか?
- 30. クライアントからWCFへの要求量を制限する
我々は戻って2002年に日付を使用しているコード(およびいくつかの特定のJavaバージョンIドンなぜそれがArrayListではなくVectorを使うのかを説明しています –
Joost
@JoostvanDoorn:1998年にJava 2が 'ArrayList'を導入しました。現在推奨されている 'ArrayList'にコードを更新する良い時期です... –
私の大学のソフトウェア工学のクラスで使用されているので、私は使用されたコードには何の影響もありません。コードはかなり悪いですが、私が聞いたので、書き直すお金はありません。これは、Vectorの使用に関係するだけではありません。 – Joost