我有一个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);
答案 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);