From 4fbb911d7c1fa85b2faf80d2ba84760d130c3f7f Mon Sep 17 00:00:00 2001 From: Andrzej Kapolka Date: Tue, 27 Sep 2005 21:58:10 +0000 Subject: [PATCH] Use a sublist view rather than removing and adding cards one by one. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3713 542714f4-19e9-0310-aa3c-eee0fc999fb1 --- src/java/com/threerings/parlor/card/data/Deck.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/java/com/threerings/parlor/card/data/Deck.java b/src/java/com/threerings/parlor/card/data/Deck.java index 9f8613780..3f7a5b07d 100644 --- a/src/java/com/threerings/parlor/card/data/Deck.java +++ b/src/java/com/threerings/parlor/card/data/Deck.java @@ -22,6 +22,7 @@ package com.threerings.parlor.card.data; import java.util.Collections; +import java.util.List; import com.threerings.util.StreamableArrayList; @@ -91,16 +92,17 @@ public class Deck extends StreamableArrayList */ public Hand dealHand (int size) { - if (size() < size) { + int dsize = size(); + if (dsize < size) { return null; } else { Hand hand = new Hand(); - int cardsLeft = size(); - for (int i = 0; i < size; i++) { - hand.add(remove(--cardsLeft)); - } + // use a sublist view to manipulate the top of the deck + List sublist = subList(dsize - size, dsize); + hand.addAll(sublist); + sublist.clear(); return hand; }