我已经按照我现在想要的方式修复了它。如果其他人有同样的问题,我认为这是尝试建立一副牌的最简单,最有效的方法。您可以使用随机变量[random] [0]和deck [random] [1]中的随机变量来挑选单个卡片。 感谢您的帮助,这是我的代码:
public class NewDeck {
public static void main(String[] args) {
String[] suits = new String[] { "Clubs", "Diamonds", "Spades", "Hearts" };
String[] faces = new String[] { "Ace", "King", "Queen", "Jack" };
String[][] deck = new String[suits.length * (faces.length + 9)][2];
int a = 0;
for (String y : suits) {
for (String x : faces) {
deck[a][0] = x;
deck[a][1] = y;
a++;
}
}
for (String y : suits) {
for (int p = 2; p < 11; p++) {
deck[a][1] = y;
String pp = Integer.toString(p);
deck[a][0] = pp;
a++;
}
}
for (int p = 0; p < deck.length; p++) {
System.out.print(deck[p][0] + " of ");
System.out.println(deck[p][1]);
}
}
}
答案 0 :(得分:2)
您应该在字符串中添加参数类型并创建Pair
类。请注意,对于泛型,您将需要1.5或更高版本的Java编译器。
class Pair {
private final String face;
private final String suit;
Pair(String suit, String face) {
this.face = face;
this.suit = suit;
}
@Override
public String toString() {
return "(" + suit + ", " + face + ")";
}
}
然后,您可以使用相应的Pair
方法List
和get
来使用此size
课程:
List<Pair> deck = new ArrayList<Pair>();
List<String> suits = new ArrayList<String>();
suits.add("Hearts");
suits.add("Diamonds");
suits.add("Clubs");
suits.add("Spades");
List<String> faces = new ArrayList<String>();
faces.add("Ace");
faces.add("King");
faces.add("Queen");
faces.add("Jack");
for(int suit = 0; suit < suits.size(); suit++){
for(int face = 0; face < faces.size(); face++){
deck.add(new Pair(suits.get(suit), faces.get(face)));
}
}
如果您覆盖toString
的{{1}}方法,您还可以Pair
获取System.out.println(deck)
所需的字符串表示。
答案 1 :(得分:0)
可能你需要改变这个
deck.add(suits[suit], faces[face]);
与
deck.add(suits[suit] + faces[face]);
因为你的想法是连接列表中的元素并将其添加到套牌列表中。
答案 2 :(得分:0)
您不能在List的一个索引处存储两个值。但你可以做的是
选项1
存储连接\字符串如
更改
deck.add(suits[suit], faces[face]);
与
deck.add(suits[suit] + "," + faces[face]);
然后输出牌组[2] =套装,面对
选项2 将字符串列表更改为Object列表,此对象包含诉讼和面部的详细信息
public class Deck {
private String suit;
private String face;
// getter and setters;
}
和列表变为
List<Deck> deck
并将条目添加为
deck.add(new Deck(suits[suit], faces[face]))