package oving5.card;
import java.util.*;
import sun.misc.Compare;
public class Hand implements Iterable<Card> {
private Card[] cards;
/*
* Constructor
*
* @param cards An instance (Card) representing a hand of cards.
*/
public Hand(Card[] cards) {
this.cards = cards.clone();
}
/*
* @return Length of the current hand
*/
public int getCardCount() {
return cards.length;
}
/*
* @return A specific card in the hand
*/
public Card getCard(int i) {
return (i >= 0 && i < getCardCount() ? cards[i] : null);
}
/*
* Sorts the hand.
*/
public void sort() {
Arrays.sort(cards);
}
/*
* @return the highest card in the hand
*/
public Card getHighestCard() {
Card highest = this.cards[0];
CardComparator c = new CardComparator();
for (int i = 0; i < this.cards.length; i++) {
if (c.compare(cards[i], highest) > 0) {
highest = cards[i];
}
}
return highest;
}
@Override
public Iterator<Card> iterator() {
List<Card> cardList = Arrays.asList(cards);
return cardList.iterator();
}
}