Java ArrayList Out of Bounds Exeption

时间:2016-02-03 01:29:08

标签: java arraylist blackjack

我正在制作一个二十一点游戏(NON GUI),我将编写算法来决定是否接收另一张卡,下注多少等等。当我添加值时,我在ArrayList上收到一个越界错误。谢谢你的帮助。

    package idk;

    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Random;

    public class Something {
    public static void main(String[] args) {
    Something something = new Something();
    ArrayList<Integer> place=new ArrayList<Integer>();
    int i;
    for(i=0; i<4; i++)
    {
        place.add(2);
    }
    for(i=4; i<8; i++)
    {
        place.add(3);
    }
    for(i=8; i<12; i++)
    {
        place.add(4);
    }
    for(i=12; i<16; i++)
    {
        place.add(5);
    }
    for(i=16; i<20; i++)
    {
        place.add(6);
    }
    for(i=20; i<24; i++)
    {
        place.add(7);
    }
    for(i=24; i<28; i++)
    {
        place.add(8);
    }
    for(i=28; i<32; i++)
    {
        place.add(9);
    }
    for(i=32; i<48; i++)
    {
        place.add(10);
    }
    for(i=48; i<52; i++)
    {
        place.add(11);
    }
    for(i=0; i<52; i++)
    {
        System.out.println(place.get(i));
    }
    int[] dealer;
    dealer = new int[28];
    for(int w=0; w<2; w++)
    {
     int min = 0;
        int max = 52;
       int range = (max - min);

        int random = new Random().nextInt(range + 1) + min;
       int card = place.get(random);
       dealer[i]=card;
       place.remove(random);
       if(i==1)
       {
           System.out.println("The dealer's face up card is " + card);
       }

    }







}

}

1 个答案:

答案 0 :(得分:1)

问题在于此行dealer[i]=card;

检查i的值,它大于声明的dealer[]大小。

for的最后一次i循环后,i的值为52,dealer[]的大小为28。