質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

2回答

787閲覧

erarraylist addの使い方【JAVA】

Alfiie02

総合スコア5

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2021/07/03 13:31

編集2021/07/03 14:03

リストに入れたものを繰り返し取り出したいのですが、エラーになってしまいます。

JAVA

1Scanner sc = new Scanner(System.in); 2List<Double> al = new ArrayList<Double>(); 3 int b = -1; 4 for(int j = 0; j < camera; j++) { 5 x = sc.nextDouble(); 6 y = sc.nextDouble(); 7 dirAngle = sc.nextDouble(); 8 viewAngle = sc.nextDouble(); 9 distance = sc.nextDouble(); 10 al.add(x); 11 al.add(y); 12 al.add(dirAngle); 13 al.add(viewAngle); 14 al.add(distance); 15 16 } 17 18 for(int i = 0; i < mono ; i++) { 19 px = sc.nextDouble(); 20 py = sc.nextDouble(); 21 22 double a = Math.toDegrees(Math.atan2(py - al.get(b + 2), px - al.get(b + 1))); 23 if (a < 0) { 24 a += 360.0; 25 } 26 27 double aMin = al.get(b + 3) - al.get(b + 4)/2; 28 if (aMin < 0.0) { 29 aMin += 360; 30 } 31 32 b += 5; 33 }

エラー;
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index 5 out of bounds for length 5
at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64)
at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70)
at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:248)
at java.base/java.util.Objects.checkIndex(Objects.java:359)
at java.base/java.util.ArrayList.get(ArrayList.java:427)
at Main.main(Main.java:50)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2021/07/03 13:36

エラーが出たなら、エラーメッセージを提示しましょう エラーメッセージは、いらぬ翻訳省略しないで、出たそのママをコピペで提示してください
y_waiwai

2021/07/03 13:37

al とか sc の定義がないですが、どうなってますか
guest

回答2

0

エラーメッセージぐらい読みましょう

エラーメッセージは怒声でも罵声でも罵倒でもハラスメントでもなく、
コンパイラ等からのメッセージです。

今の状態は『相手の話を聞かずに逆ギレしている人』です。

そんな人はコミュニケーションなんて取れませんよね。

まずはメッセージぐらい読みましょう。

Exception in thread "main" java.lang.IndexOutOfBoundsException: Index 5 out of bounds for length [訳] mainスレッドにて例外発生。 java.lang.IndexOutOfBoundsExceptionが飛んできています。 つまり、要素番号5、長さが…

Index(要素番号) Out Of (〜の外) Bounds(境界) Exception(例外)

つまり、『アクセス可能な要素数以外にアクセスしたことが原因』です。

例えば、要素数10の配列やリストで、

arr[20] としたとか。

投稿2021/07/03 13:57

BeatStar

総合スコア4962

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

BeatStar

2021/07/03 13:58

ちなみに今回は『例外』です。
Alfiie02

2021/07/03 14:00

ちょっと前半何言ってるか分からないですが回答どうも
guest

0

ベストアンサー

IndexOutOfBoundsException は、配列に対して範囲外の要素番号を指定した場合に発生します。
要素数が 5 コしかないのに 6 番目(要素番号=5) にアクセスしていると思われます。

投稿2021/07/03 13:55

yh1224

総合スコア653

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Alfiie02

2021/07/03 14:09

すみません、エラー文を更新しました。 現在、bを-1と定義し、最後に+5をして取り出す要素をaddしたalリストの中身をfor分で回して取り出そうとしています。
yh1224

2021/07/03 14:18

Exception in thread "main" java.lang.IndexOutOfBoundsException: Index 5 out of bounds for length 5 であれば、回答は同じです。
yh1224

2021/07/03 14:21

camera より mono のほうが大きかったりしませんか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問