利用集合的靜態方法Collections.shuffle() 亂序集合中的元素,實現自動理牌
阿新 • • 發佈:2019-02-04
import java.util.*; public class Card { public static enum Face{紅心, 方塊, 草花, 黑桃}; public static enum Deck{ one, two, three, four, five, six, seven, eight, nine, ten, eleven, tweleve, thirteen }; /** * * 私有變數將從列舉Face, Deck中獲得值,那麼其返回值應該定義成列舉(enum)嗎? * 是的,但是需要使用Face face, Deck deck; * */ private Face face; private Deck deck; public Card(Face faceVal, Deck deckVal) //和上面解釋一樣,型別就用列舉的名稱 { face = faceVal; deck = deckVal; } public String toString() { return String.format("%s of %s", deck, face); } public static void main(String argc[]) { Card card[] = new Card[52]; int counter = 0; for ( Card.Face faceVal : Card.Face.values()) { for (Card.Deck deckVal :Card.Deck.values() ) { card[counter++] = new Card(faceVal, deckVal); } } List <Card> list = Arrays.asList(card); // 將陣列轉化成collection Collections.shuffle(list); //利用集合(collections)的靜態方法,打亂list集合順序 Card[] card2 = new Card[52]; //建立新陣列 list.toArray(card2); //將collection轉換成陣列,以便輸出 int x =1; for (Card c : card2) { System.out.println(c +" "+ (x++) ); } } }