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);ではできませんでした