Created
March 29, 2017 17:46
-
-
Save thanoojgithub/1fcd54161242539f0bf551ae9816970e to your computer and use it in GitHub Desktop.
Java Collection - Standard 52-card deck use case
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| package com; | |
| import java.util.ArrayList; | |
| import java.util.Arrays; | |
| import java.util.Collections; | |
| import java.util.List; | |
| import java.util.Random; | |
| public class Deck { | |
| public static void main(String[] args) { | |
| List<Card> deckOne = doSuffling(Deck.getIntance()); | |
| List<Card> deckTwo = doSuffling(Deck.getIntance()); | |
| List<Card> deckThree = doSuffling(Deck.getIntance()); | |
| List<Card> deckFour = doSuffling(Deck.getIntance()); | |
| System.out.println("----------------doSuffling--------------------------"); | |
| System.out.println("deckOne: " + deckOne); | |
| System.out.println("deckTwo: " + deckTwo); | |
| System.out.println("deckThree: " + deckThree); | |
| System.out.println("deckFour: " + deckFour); | |
| System.out.println("----------------getOnlySpades--------------------------"); | |
| for (Card card : getOnlySpades(deckOne)) { | |
| System.out.println("getOnlySpades(deckOne) - " + card); | |
| } | |
| for (Card card : getOnlySpades(deckTwo)) { | |
| System.out.println("getOnlySpades(deckOne) - " + card); | |
| } | |
| for (Card card : getOnlySpades(deckThree)) { | |
| System.out.println("getOnlySpades(deckOne) - " + card); | |
| } | |
| for (Card card : getOnlySpades(deckFour)) { | |
| System.out.println("getOnlySpades(deckOne) - " + card); | |
| } | |
| } | |
| public static List<Card> doSuffling(List<Card> cards) { | |
| for (Card card : cards) { | |
| System.out.println("Deck.doSuffling() before : " + card); | |
| } | |
| Collections.shuffle(cards); | |
| return cards; | |
| } | |
| public static List<Card> getOnlySpades(List<Card> cards) { | |
| List<Card> cardsTemp = new ArrayList<Card>(); | |
| for (Card card : cards) { | |
| if (card.getSuit().equalsIgnoreCase(Suits.SPADES.name())) { | |
| cardsTemp.add(card); | |
| } | |
| } | |
| return cardsTemp; | |
| } | |
| public static List<Card> getIntance() { | |
| List<Card> cardList = new ArrayList<Card>(); | |
| cardList.add(new Card(Suits.randomSuit().name(), SuitIncludes.ACE.name(), SuitColor.randomSuitColor().name())); | |
| cardList.add(new Card(Suits.randomSuit().name(), SuitIncludes.KING.name(), SuitColor.randomSuitColor().name())); | |
| cardList.add(new Card(Suits.randomSuit().name(), SuitIncludes.QUEEN.name(), SuitColor.randomSuitColor().name())); | |
| cardList.add(new Card(Suits.randomSuit().name(), SuitIncludes.JACK.name(), SuitColor.randomSuitColor().name())); | |
| for (int i = 2; i <= 10; i++) { | |
| cardList.add(new Card(Suits.randomSuit().name(), String.valueOf(i), SuitColor.randomSuitColor().name())); | |
| } | |
| return cardList; | |
| } | |
| } | |
| enum Suits { | |
| CLUBS, DIAMONDS, HEARTS, SPADES; | |
| private static final List<Suits> VALUES = Collections.unmodifiableList(Arrays.asList(values())); | |
| private static final int SIZE = VALUES.size(); | |
| private static final Random RANDOM = new Random(); | |
| public static Suits randomSuit() { | |
| return VALUES.get(RANDOM.nextInt(SIZE)); | |
| } | |
| } | |
| enum SuitIncludes { | |
| ACE, KING, QUEEN, JACK; | |
| } | |
| enum SuitColor { | |
| RED, BLACK; | |
| private static final List<SuitColor> VALUES = Collections.unmodifiableList(Arrays.asList(values())); | |
| private static final int SIZE = VALUES.size(); | |
| private static final Random RANDOM = new Random(); | |
| public static SuitColor randomSuitColor() { | |
| return VALUES.get(RANDOM.nextInt(SIZE)); | |
| } | |
| } | |
| class Card { | |
| private String suit; | |
| private String value; | |
| private String color; | |
| public Card(String suit, String value, String color) { | |
| super(); | |
| this.suit = suit; | |
| this.value = value; | |
| this.color = color; | |
| } | |
| public String getSuit() { | |
| return suit; | |
| } | |
| public void setSuit(String suit) { | |
| this.suit = suit; | |
| } | |
| public String getValue() { | |
| return value; | |
| } | |
| public void setValue(String value) { | |
| this.value = value; | |
| } | |
| public String getColor() { | |
| return color; | |
| } | |
| public void setColor(String color) { | |
| this.color = color; | |
| } | |
| @Override | |
| public String toString() { | |
| return suit + " " + value + " " + color; | |
| } | |
| } | |
| //OUTPUT: | |
| /* | |
| Deck.doSuffling() before : DIAMONDS ACE RED | |
| Deck.doSuffling() before : DIAMONDS KING RED | |
| Deck.doSuffling() before : DIAMONDS QUEEN BLACK | |
| Deck.doSuffling() before : DIAMONDS JACK RED | |
| Deck.doSuffling() before : SPADES 2 BLACK | |
| Deck.doSuffling() before : CLUBS 3 RED | |
| Deck.doSuffling() before : DIAMONDS 4 BLACK | |
| Deck.doSuffling() before : CLUBS 5 BLACK | |
| Deck.doSuffling() before : HEARTS 6 RED | |
| Deck.doSuffling() before : HEARTS 7 RED | |
| Deck.doSuffling() before : HEARTS 8 BLACK | |
| Deck.doSuffling() before : CLUBS 9 BLACK | |
| Deck.doSuffling() before : DIAMONDS 10 RED | |
| Deck.doSuffling() before : SPADES ACE BLACK | |
| Deck.doSuffling() before : DIAMONDS KING RED | |
| Deck.doSuffling() before : DIAMONDS QUEEN RED | |
| Deck.doSuffling() before : DIAMONDS JACK BLACK | |
| Deck.doSuffling() before : CLUBS 2 RED | |
| Deck.doSuffling() before : CLUBS 3 RED | |
| Deck.doSuffling() before : CLUBS 4 BLACK | |
| Deck.doSuffling() before : HEARTS 5 BLACK | |
| Deck.doSuffling() before : HEARTS 6 RED | |
| Deck.doSuffling() before : CLUBS 7 RED | |
| Deck.doSuffling() before : CLUBS 8 RED | |
| Deck.doSuffling() before : CLUBS 9 RED | |
| Deck.doSuffling() before : DIAMONDS 10 RED | |
| Deck.doSuffling() before : DIAMONDS ACE RED | |
| Deck.doSuffling() before : HEARTS KING RED | |
| Deck.doSuffling() before : HEARTS QUEEN BLACK | |
| Deck.doSuffling() before : CLUBS JACK BLACK | |
| Deck.doSuffling() before : HEARTS 2 BLACK | |
| Deck.doSuffling() before : SPADES 3 BLACK | |
| Deck.doSuffling() before : CLUBS 4 BLACK | |
| Deck.doSuffling() before : DIAMONDS 5 RED | |
| Deck.doSuffling() before : HEARTS 6 BLACK | |
| Deck.doSuffling() before : DIAMONDS 7 RED | |
| Deck.doSuffling() before : HEARTS 8 BLACK | |
| Deck.doSuffling() before : HEARTS 9 RED | |
| Deck.doSuffling() before : SPADES 10 RED | |
| Deck.doSuffling() before : SPADES ACE BLACK | |
| Deck.doSuffling() before : SPADES KING BLACK | |
| Deck.doSuffling() before : HEARTS QUEEN BLACK | |
| Deck.doSuffling() before : SPADES JACK BLACK | |
| Deck.doSuffling() before : DIAMONDS 2 RED | |
| Deck.doSuffling() before : HEARTS 3 BLACK | |
| Deck.doSuffling() before : CLUBS 4 BLACK | |
| Deck.doSuffling() before : DIAMONDS 5 RED | |
| Deck.doSuffling() before : DIAMONDS 6 BLACK | |
| Deck.doSuffling() before : DIAMONDS 7 BLACK | |
| Deck.doSuffling() before : HEARTS 8 RED | |
| Deck.doSuffling() before : DIAMONDS 9 BLACK | |
| Deck.doSuffling() before : DIAMONDS 10 BLACK | |
| ----------------doSuffling-------------------------- | |
| deckOne: [DIAMONDS ACE RED, HEARTS 8 BLACK, DIAMONDS KING RED, HEARTS 6 RED, CLUBS 5 BLACK, CLUBS 9 BLACK, DIAMONDS 10 RED, HEARTS 7 RED, DIAMONDS QUEEN BLACK, DIAMONDS 4 BLACK, CLUBS 3 RED, DIAMONDS JACK RED, SPADES 2 BLACK] | |
| deckTwo: [HEARTS 5 BLACK, CLUBS 2 RED, CLUBS 4 BLACK, CLUBS 3 RED, CLUBS 7 RED, SPADES ACE BLACK, HEARTS 6 RED, DIAMONDS JACK BLACK, CLUBS 9 RED, DIAMONDS QUEEN RED, DIAMONDS 10 RED, CLUBS 8 RED, DIAMONDS KING RED] | |
| deckThree: [DIAMONDS 7 RED, CLUBS JACK BLACK, HEARTS 6 BLACK, SPADES 10 RED, DIAMONDS 5 RED, HEARTS 8 BLACK, DIAMONDS ACE RED, HEARTS QUEEN BLACK, HEARTS 9 RED, SPADES 3 BLACK, HEARTS 2 BLACK, HEARTS KING RED, CLUBS 4 BLACK] | |
| deckFour: [SPADES ACE BLACK, DIAMONDS 9 BLACK, CLUBS 4 BLACK, HEARTS 3 BLACK, SPADES KING BLACK, DIAMONDS 2 RED, DIAMONDS 7 BLACK, HEARTS 8 RED, HEARTS QUEEN BLACK, DIAMONDS 10 BLACK, DIAMONDS 6 BLACK, SPADES JACK BLACK, DIAMONDS 5 RED] | |
| ----------------getOnlySpades-------------------------- | |
| getOnlySpades(deckOne) - SPADES 2 BLACK | |
| getOnlySpades(deckOne) - SPADES ACE BLACK | |
| getOnlySpades(deckOne) - SPADES 10 RED | |
| getOnlySpades(deckOne) - SPADES 3 BLACK | |
| getOnlySpades(deckOne) - SPADES ACE BLACK | |
| getOnlySpades(deckOne) - SPADES KING BLACK | |
| getOnlySpades(deckOne) - SPADES JACK BLACK | |
| */ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment