在ArrayList(Java)

时间:2017-03-12 16:35:22

标签: java arraylist

首先关于我正在制作的这个节目的一些背景知识。 NCAA March Madness即将开始,我认为制作一个计划可以让参加锦标赛的球队在每轮比赛中随机选出获胜者,直到有一个明确的赢家为止。我计划如何做到这一点是为16个团队的四个区域中的每个区域制作一个阵列列表。然后它将采用前两个索引(模仿篮球比赛)并选择一个随机数(表示胜利者)。我的问题是如何让for循环迭代所有索引,同时只比较适用的索引(即索引0和1,2和3,4和5等)并从其中一个组中删除一个随机索引数组列表中的两个索引。 现在当我运行代码时它只是删除每个第三个索引而不是在两个索引的任意一组中删除一个随机的问题 附:上述代码仅适用于四个区域中的一个区域,用于提问。 P.S.S我对编程很新,所以请原谅我粗略的代码 谢谢你的帮助!!非常感谢。

import java.util.Scanner;
import java.util.ArrayList;
import java.util.Random;
public class BracketGeneratorV2
{
    public static void main (String [] Args)
    {
        Scanner userin = new Scanner(System.in);
        Random rnum = new Random();

        ArrayList<String> eastSide = new ArrayList<String>();


        for (int i = 0; i < 16; i++)
        {
            eastSide.add(userin.nextLine());
        }

        int x = -2;
        for (int i = 0; i < eastSide.size()/2; i++)
        {
            x += 2;

            int matchupWinner = rnum.nextInt(1)+0;
            if (matchupWinner == 0)
            {   
                eastSide.remove(eastSide.get(x));
            }
            else if (matchupWinner == 1)
            {
                eastSide.remove(eastSide.get(x+1));
            }
        }
        for (int i = 0; i < eastSide.size(); i++)
        {
            System.out.println(eastSide.get(i));
        }
    }
}       

1 个答案:

答案 0 :(得分:0)

只需将int matchupWinner = rnum.nextInt(1) + 0更改为int matchupWinner = rnum.nextInt(2)这就是Aj Johnson在评论中所说的内容。这是因为后者将返回0或1,而前者只返回0(因为参数不包含在范围内)。