[解決済み] java.lang.ArrayIndexOutOfBoundsExceptionが発生する原因とその対策について教えてください。
2022-03-17 14:41:49
質問事項
とは何ですか?
ArrayIndexOutOfBoundsException
の意味と、それを取り除くにはどうしたらよいでしょうか?
例外を発生させるコードサンプルはこちらです。
String[] names = { "tom", "bob", "harry" };
for (int i = 0; i <= names.length; i++) {
System.out.println(names[i]);
}
解決方法は?
最初に呼び出すべきは ドキュメント には、それなりにわかりやすく説明されています。
不正なインデックスで配列にアクセスされたことを示すためにスローされます。インデックスが負の値であるか、配列のサイズ以上であることを表します。
だから例えば
int[] array = new int[5];
int boom = array[10]; // Throws the exception
回避する方法としては...うーん、それはやめておいた方がいい。配列のインデックスに注意してください。
時々遭遇する問題として、配列が1-インデックスであると思い込んでいる人がいます。
int[] array = new int[5];
// ... populate the array here ...
for (int index = 1; index <= array.length; index++)
{
System.out.println(array[index]);
}
この場合、最初の要素 (インデックス 0) が欠落し、インデックスが 5 のときに例外が発生します。 ここで有効なインデックスは 0-4 (包括) です。正しい慣用的な
for
のような記述になります。
for (int index = 0; index < array.length; index++)
(それは、あなたが 必要 もちろん、インデックスが必要です。もし、拡張されたforループを代わりに使えるのであれば、そうしてください)。
関連
-
スレッド "main" で例外発生 java.lang.ArrayIndexOutOfBoundsException: 0 at One1.main(One1.java:3)
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] JUnit 4のテストで、ある例外が投げられたことをどのように断言しますか?
-
[解決済み] JavaBeanとは何ですか?
-
[解決済み] java.net.URLConnectionを使用してHTTPリクエストを発生させ処理する方法
-
[解決済み] Could not find or load main class "とはどういう意味ですか?
-
[解決済み] 最近のPythonでカスタム例外を宣言する適切な方法?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】配列インデックス Out Of Bounds 例外 [重複]。
-
エラー java.util.NoSuchElementException
-
Java Error スレッド "AWT-EventQueue-0" で例外発生 java.lang.
-
Eclipseプロンプトを実行する java仮想マシンを使用しない
-
Spring boot runs with Error creating bean with name 'entityManagerFactory' defined in class path resource
-
xxx:jarのアーティファクトディスクリプタの読み込みに失敗した問題は解決しました。
-
javaでクラスを作成すると、enclosing classでないように見える
-
SocketTimeoutExceptionです。読み込みがタイムアウトしました
-
java -serverコマンドで「Error: no `server' JVM at ... jvm.dll」を解決する方法です。
-
Maven Pluginの実行がライフサイクル設定の対象外であるエラーの解決