ArrayList和Doubles

时间:2013-10-22 20:39:50

标签: java random arraylist

我有一个BINGO游戏,它有一个充当来电者的按钮。每次我点击按钮,我想要一个1-75之间的随机数。 我有以下代码尝试消除重复,但我不知道如何从这里继续前进。我基本上需要在下次单击按钮时从ArrayList中删除该数字。

private JButton c; {
    c = new JButton("Call");
    c.addActionListener(
        new ActionListener() {
         public void actionPerformed(ActionEvent e) {
             List<Integer> list = new ArrayList<Integer>();
                for(int i = 1; i <= 75; i++){
                    list.add(i);
                }

                Collections.shuffle(list);

2 个答案:

答案 0 :(得分:4)

我会使用LinkedList而不是Arraylist,在构造函数中填充它,然后让LinkedList为您完成所有工作。类似的东西:

public class Bingo extends JPanel{
  private static final long serialVersionUID = -5791572059409665801L;
  private LinkedList<Integer> list = new LinkedList<Integer>();
  private JButton c = new JButton("Call");

  public Bingo(){
    for(int ii=1; ii<= 75; ii++)
      list.add(ii);
    Collections.shuffle(list);

    c.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e){
        System.out.println(list.poll());
      }
    });

    add(c);
  }

  private static void createAndShowGUI() {
    JFrame frame = new JFrame("ButtonDemo");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    Bingo bingoClass = new Bingo();
    bingoClass.setOpaque(true);
    frame.setContentPane(bingoClass);

    frame.pack();
    frame.setVisible(true);
  }

  public static void main(String... args){
    javax.swing.SwingUtilities.invokeLater(new Runnable() {
      public void run() {
        createAndShowGUI();
      }
    });
  }
}

答案 1 :(得分:0)

找到要删除的元素的索引:

int indexToRemove = list.indexOf(numberToRemove);

然后删除列表中该索引处的对象

list.remove(indexToRemove);