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

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

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

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

ArrayList

Java用のタグです。arrayListはListインターフェースを実装した、リサイズ可能な配列用クラスです。

Q&A

1回答

993閲覧

Index -1 out of bounds for length 6を解決したい

lop000p

総合スコア29

Java

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

ArrayList

Java用のタグです。arrayListはListインターフェースを実装した、リサイズ可能な配列用クラスです。

0グッド

1クリップ

投稿2021/10/24 11:28

編集2021/10/24 11:58

java

1import java.util.ArrayList; 2import java.util.Arrays; 3 4public class main { 5// 6 public static void main(String[] args) { 7 8 ArrayList<String> lotteryBallColor = new ArrayList<String>(); 9 ArrayList<Integer> lotteryBallQuantity = new ArrayList<Integer>(); 10 ArrayList<String> gift = new ArrayList<String>(); 11 12 lotteryBallColor = new ArrayList<>(Arrays.asList("金", "赤", "緑", "青", "黄", "白")); 13 lotteryBallQuantity = new ArrayList<>(Arrays.asList(1, 2, 3, 5, 10, 20)); 14 gift = new ArrayList<>(Arrays.asList("ルンバ", "炭酸水メーカー", "卓上加湿器", "マスク5枚セット", "クリスタルガイザー", "ティッシュ")); 15 ArrayList<Integer> ranking = new ArrayList<Integer>(); 16 ranking = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5, 6)); 17 18 lotteryBallQuantity.remove(lotteryBallQuantity.indexOf(1) - 1); 19 System.out.println(lotteryBallQuantity); 20 } 21} 22

エラー
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index -1 out of bounds for length 6
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:266)
at java.base/java.util.Objects.checkIndex(Objects.java:359)
at java.base/java.util.ArrayList.remove(ArrayList.java:504)
at main.main(main.java:18)

したいこと
lotteryBallQuantityの[1]に対して-1をしたいです。
上記のようにインデックスのエラーが出てしまったのですが、
lotteryBallQuantity = new ArrayList<>(Arrays.asList(1, 2, 3, 5, 10, 20));
の 2の値を-1するにはどのようにしたらいいでしょうか?
教えていただきたいです

変更後
lotteryBallQuantity.remove((int) 2);
System.out.println(lotteryBallQuantity);

[1, 2, 5, 10, 20]

上記に変更し、実行できました。
実現したいことは配列[2]にたいしてー1をしたいのですが、どのような式にしたらよいか教えていただきたいです。
lotteryBallQuantity.remove(((int) 2) -1);ではできませんでした

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

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

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

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

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

jimbe

2021/10/24 11:40

> lotteryBallQuantity.indexOf(1) これは何が返るとお考えでしょう。そして、indexOf のドキュメントをお調べになって、どう思われるでしょうか。
lop000p

2021/10/24 11:49

indexOfは文字列でした、、
Crimson_Tide

2021/10/24 12:30 編集

ArrayListのメソッド(利用方法)を十分に理解されていないように見受けられます。 (入門書なりを使用すべきですが)[java ArrayList]ぐぐればいくらでも出てくるので、ちゃんと学習することをおすすめします。 ここで聞くより早く解決しますし、理解も深まり、自己解決能力も向上しますよ。
guest

回答1

0

lotteryBallQuantity.indexOf(1)

の結果は0が返りますよ

投稿2021/10/24 12:00

y_waiwai

総合スコア87774

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問