2013-03-03 61 views
4

由于英语不是我的母语,我有时很难理解老师的指令,以自己想要的东西。我将提供她想要的指示,我所做的代码和我的问题。添加洗好的牌到队列

说明: •有一个私人方法来“洗牌”,随机洗牌52张牌,创建一个队列。使用随机类。

我的代码:

private void shuffling() 
    { 
     Random generator = new Random(); 
     int[] cards = new int[52]; 


     for (int i=0; i<cards.length; i++) 
     { 
      cards[i] = i; 
     } 


     for (int i=0; i<cards.length; i++) 
     { 
      int randomPosition = generator.nextInt(cards.length); 
      int temp = cards[i]; 
      cards[i] = cards[randomPosition]; 
      cards[randomPosition] = temp; 
     } 
    } 

问题:我是跟着我的老师的指令正确,因为她想要什么?如果我是,我的问题是,我如何创建一个52卡随机洗牌队列?我认为我有洗牌的部分。任何帮助,将不胜感激。

与问候,

一个初学者

+2

这是一个洗牌的好办法,但你仍然需要创建队列。所以你也可以通过数组循环,并添加每一个到一个新的队列 – Ken 2013-03-03 03:45:29

+0

谢谢您的答复,那就是我有一个问题的一部分,我已经阅读了队列上,但仍然没有想法,如何实现它们在这里,你是否愿意举例说明如何创建一个队列,然后将每个队列添加到队列中? – user2128074 2013-03-03 03:50:02

+0

一种方法是做一个链表,只是让自己的功能加入和离开队列 – Ken 2013-03-03 03:55:45

回答

3

问题的Queue部分将需要创建一个实例某些类实现了java.util.Queue

使用链接到你的讲座提供的Java API文档,这是(毫无疑问):

  • 仰望Queue接口(@MaxOvrdrv提供了一个链接到一个旧版本...不如使用Java 7的javadoc ...去找到它们!)
  • 看看实现Queue
  • 阅读类
  • 选择之一,将在您的使用情况工作的描述类(即一个简单的)
  • 阅读Queue API方法,并找出你需要使用到的元素添加到队列
  • 代码吧...

(我不会为你提供链接什么的,因为你需要知道的(记住!)如何给自己找到它们。)


至于其他,嗯,这取决于你已指示如何表示“卡”。如果它们只是整数,那么其余的代码是合理的。这不是一个糟糕的方式来实施洗牌。 (Random是不是一个好的随机数发生器,但在这种情况下并不重要。)

+0

谢谢你的回应。 – user2128074 2013-03-03 04:26:16