C:\fig20_10>java DeckOfCards Nine of Spades Seven of Hearts Deuce of Diamonds Nine of Hearts Deuce of Hearts Ten of Hearts Seven of Diamonds Queen of Clubs Ten of Spades Nine of Diamonds Seven of Clubs Four of Hearts Ace of Clubs Eight of Diamonds Three of Diamonds Ten of Diamonds Deuce of Spades Queen of Diamonds Five of Diamonds Jack of Clubs Six of Clubs Four of Spades Five of Clubs Eight of Spades Six of Hearts Ace of Hearts Three of Spades Jack of Diamonds Five of Spades Three of Clubs Jack of Hearts Six of Spades Ace of Spades King of Clubs Six of Diamonds Three of Hearts Seven of Spades Four of Clubs Five of Hearts King of Spades Ace of Diamonds Four of Diamonds Jack of Spades King of Hearts Ten of Clubs Queen of Spades Queen of Hearts Eight of Clubs Eight of Hearts Nine of Clubs Deuce of Clubs King of Diamonds
DeckOfCards.java
// Fig. 20.10: DeckOfCards.java // Card shuffling and dealing with Collections method shuffle. import java.util.List; import java.util.Arrays; import java.util.Collections; // class to represent a Card in a deck of cards class Card { public static enum Face { Ace, Deuce, Three, Four, Five, Six, Seven, Eight, Nine, Ten, Jack, Queen, King }; public static enum Suit { Clubs, Diamonds, Hearts, Spades }; private final Face face; // face of card private final Suit suit; // suit of card // two-argument constructor public Card( Face cardFace, Suit cardSuit ) { face = cardFace; // initialize face of card suit = cardSuit; // initialize suit of card } // end two-argument Card constructor // return face of the card public Face getFace() { return face; } // end method getFace // return suit of Card public Suit getSuit() { return suit; } // end method getSuit // return String representation of Card public String toString() { return String.format( "%s of %s", face, suit ); } // end method toString } // end class Card // class DeckOfCards declaration public class DeckOfCards { private List< Card > list; // declare List that will store Cards // set up deck of Cards and shuffle public DeckOfCards() { Card[] deck = new Card[ 52 ]; int count = 0; // number of cards // populate deck with Card objects for ( Card.Suit suit : Card.Suit.values() ) { for ( Card.Face face : Card.Face.values() ) { deck[ count ] = new Card( face, suit ); ++count; } // end for } // end for list = Arrays.asList( deck ); // get List Collections.shuffle( list ); // shuffle deck } // end DeckOfCards constructor // output deck public void printCards() { // display 52 cards in two columns for ( int i = 0; i < list.size(); i++ ) System.out.printf( "%-19s%s", list.get( i ), ( ( i + 1 ) % 4 == 0 ) ? "\n" : "" ); } // end method printCards public static void main( String[] args ) { DeckOfCards cards = new DeckOfCards(); cards.printCards(); } // end main } // end class DeckOfCards
Maintained by John Loomis, updated Thu Oct 10 21:06:15 2013