Hi KC
The "subList(...)" method extracts a sub-list as a view over the initial
list and not as a new list. All the operations performed on the sub-list
(handView here) affects the initial list, including adding or
suppression elements.
In this code:
List handView = deck.subList(deckSize - n, deckSize);
-> Extracts a view of the deck in handView
List hand = new ArrayList(handView);
-> Creates a new list with the elements in the sub-list
handView.clear();
-> Suppress all the elements in the view, so from the initial list
return hand;
-> Returns the newly created list, containing the elements that
was deleted from the initial list (deck)
Hope it helps
mihai
kc a écrit :
Hi,
I could not figure out how the deck size will decrease with:
List handView = deck.subList(deck.size() - 4, deck.size());
handView.clear();
Complete program below
Regards
KC
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
int numHands = Integer.parseInt(args[0]);
int cardsPerHand = Integer.parseInt(args[1]);
// 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 deck = new ArrayList();
for (int i = 0; i < suit.length; i++) {
for (int j = 0; j < rank.length; j++) {
deck.add(rank[j] + " of " + suit[i]);
}
}
Collections.shuffle(deck);
for (int i = 0; i < numHands; i++) {
System.out.println(dealHand(deck, cardsPerHand));
}
}
public static List dealHand(List deck, int n) {
int deckSize = deck.size();
System.out.println(deckSize);
List handView = deck.subList(deckSize - n, deckSize);
List hand = new ArrayList(handView);
handView.clear();
return hand;
}
}
--
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/javaprogrammingwithpassion?hl=en