Using Java Library ArrayList as a List implementation, create a normal 52-card deck

0

Using Java Library ArrayList as a List implementation, create a normal 52-card deck Using Java Library ArrayList as a List implementation, create a normal 52-card deck with “Spades”, “Hearts “Diamonds’, ‘Clubs” as suit names and “Ace”, “2”, “3”,“4”5″, “6”, “7”, “8”, “9”, “10”, “Jack, “Queen”, “King” as rank names.

Using Java Library ArrayList as a List implementation IN JAVA


Write a program that takes as input : -

(1) the number of hands to deal and 

(2) the number of cards in each hand and generates required hands with pseudo-random output, using Java Library Random with seed as 0, to shuffle the cards.

Input format :-

Enter number of hands on first line

Enter number of cards per hand on next line

Output format :-

One hand is printed on each line

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int numHands = Integer.parseInt(sc.nextLine());
        int cardsPerHand = Integer.parseInt(sc.nextLine());
        ArrayList<Integer> a2=new ArrayList<>();
        a2.add(numHands);
        a2.add(cardsPerHand);
        if (a2.size() < 2) {
            System.out.println("Usage: Deal hands cards");
            return;
        }

        // Make a normal 52-card deck.
        String[] suit = new String[] {
                "spades", "hearts",
                "diamonds", "clubs"
        };
        String[] rank = new String[] {
                "ace", "2", "3", "4",
                "5", "6", "7", "8", "9", "10",
                "jack", "queen", "king"
        };

        List<String> deck = new ArrayList<String>();
        for (int i = 0; i < suit.length; i++)
            for (int j = 0; j < rank.length; j++)
                deck.add(rank[j] + " of " + suit[i]);

        // Shuffle the deck.
        Collections.shuffle(deck);

        if (numHands * cardsPerHand > deck.size()) {
            System.out.println("Not enough cards.");
            return;
        }

        for (int i = 0; i < numHands; i++)
            System.out.println(dealHand(deck, cardsPerHand));
    }

    public static <E> List<E> dealHand(List<E> deck, int n) {
        int deckSize = deck.size();
        List<E> handView = deck.subList(deckSize - n, deckSize);
        List<E> hand = new ArrayList<E>(handView);
        handView.clear();
        return hand;
    }
}

Post a Comment

0Comments
Post a Comment (0)

#buttons=(Accept !) #days=(20)

Our website uses cookies to enhance your experience. Learn More
Accept !
✨ Updates