Card shuffling and dealing with Collections method shuffle. - Java Collection Framework

Java examples for Collection Framework:Collections Utility Methods

Description

Card shuffling and dealing with Collections method shuffle.

Demo Code

import java.util.List;
import java.util.Arrays;
import java.util.Collections;

// class to represent a Card in a deck of cards
class Card //  w  ww  .  j  a  va 2s  . c  o  m
{   
   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; 
   private final Suit suit;
   
   // constructor
   public Card(Face face, Suit suit) 
   {  
       this.face = face;
       this.suit = suit; 
   } 
   
   // return face of the card
   public Face getFace() 
   {
      return face; 
   } 

   // return suit of Card
   public Suit getSuit() 
   {
      return suit; 
   } 

   // return String representation of Card
   public String toString()
   {
      return String.format("%s of %s", face, suit);
   } 
} 

// class DeckOfCards declaration
public class Main 
{
   private List<Card> list; // declare List that will store Cards

   // set up deck of Cards and shuffle
   public Main()
   {
      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;
         } 
      } 

      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" : "");
   } 

   public static void main(String[] args)
   {
      Main cards = new Main();
      cards.printCards();
   }   
}

Result


Related Tutorials