我已经有一个简单的字符串来表示卡组,因此我需要将卡随机移动到新卡组中。我最初只是使用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);
}
}
答案 0 :(得分:0)
请注意,堆栈是一个列表,因此可以通过索引访问元素:它具有方法get(x),set(x)。感谢@andreas向我指出。
所以,这是一个非常简单的方法:(有更好的方法,但是我要简单一些)。
获取两个比数组大小小的0到1范围内的随机索引,例如k和j,然后将索引k的元素与索引j的元素切换。进行足够多次。