随机播放一堆字符串?

时间:2019-02-21 00:16:33

标签: java stack

我已经有一个简单的字符串来表示卡组,因此我需要将卡随机移动到新卡组中。我最初只是使用Collections.shuffle并完成它,但是其中一项要求是使用随机方法,这是我被绊倒的地方,我敢肯定这是一件非常简单的事情,但整个过程从字符串到整数的事情仍然让我感到困惑。

这是我的一叠纸牌。

    import java.util.Stack;

public class Deck {
   public static void main(String[] args) {

      Stack<String> stackOfCards = new Stack<>();

         stackOfCards.push("2Spade");
         stackOfCards.push("3Spade");
         stackOfCards.push("4Spade");
         stackOfCards.push("5Spade");
         stackOfCards.push("6Spade");
         stackOfCards.push("7Spade");
         stackOfCards.push("8Spade");
         stackOfCards.push("9Spade");
         stackOfCards.push("10Spade");
         stackOfCards.push("JSpade");
         stackOfCards.push("QSpade");
         stackOfCards.push("KSpade");
         stackOfCards.push("ASpade");
         stackOfCards.push("2Diamond");
         stackOfCards.push("3Diamond");
         stackOfCards.push("4Diamond");
         stackOfCards.push("5Diamond");
         stackOfCards.push("6Diamond");
         stackOfCards.push("7Diamond");
         stackOfCards.push("8Diamond");
         stackOfCards.push("9Diamond");
         stackOfCards.push("10Diamond");
         stackOfCards.push("JDiamond");
         stackOfCards.push("QDiamond");
         stackOfCards.push("KDiamond");
         stackOfCards.push("ADiamond");
         stackOfCards.push("2Club");
         stackOfCards.push("3Club");
         stackOfCards.push("4Club");
         stackOfCards.push("5Club");
         stackOfCards.push("6Club");
         stackOfCards.push("7Club");
         stackOfCards.push("8Club");
         stackOfCards.push("9Club");
         stackOfCards.push("10Club");
         stackOfCards.push("JClub");
         stackOfCards.push("QClub");
         stackOfCards.push("KClub");
         stackOfCards.push("AClub");
         stackOfCards.push("2Heart");
         stackOfCards.push("3Heart");
         stackOfCards.push("4Heart");
         stackOfCards.push("5Heart");
         stackOfCards.push("6Heart");
         stackOfCards.push("7Heart");
         stackOfCards.push("8Heart");
         stackOfCards.push("9Heart");
         stackOfCards.push("10Heart");
         stackOfCards.push("JHeart");
         stackOfCards.push("QHeart");
         stackOfCards.push("KHeart");
         stackOfCards.push("AHeart");       

    System.out.println("Deck: " + stackOfCards);
    }
}

1 个答案:

答案 0 :(得分:0)

请注意,堆栈是一个列表,因此可以通过索引访问元素:它具有方法get(x),set(x)。感谢@andreas向我指出。

所以,这是一个非常简单的方法:(有更好的方法,但是我要简单一些)。

获取两个比数组大小小的0到1范围内的随机索引,例如k和j,然后将索引k的元素与索引j的元素切换。进行足够多次。