Я создаю группу объектов Card.
public Card()
{
cardSign = myRandomHelper.nextInt(3);
this.setSign(this.getCardSign());
this.cardValue = (byte) (myRandomHelper.nextInt(SIX) + ONE);
} // End of Card
cardSign получает случайное число от нуля до двух, и на основании этого числа устанавливается знак для данного объекта Card.
в своем классе FullDeck я создаю LinkedHastSet
LinkedHashSet<Card> myFullDeck = new LinkedHashSet<Card>();
Затем я пытаюсь создать набор карточек, но дубликаты не обнаруживаются, а вместо этого добавляются в список.
public void createFullDeck() {
/**
* while the amount of cards is not equal to eighteen ..
*/
while ( myFullDeck.size() != fullDeckLength ) {
/**
* create the first card as a random card
*/
interCard = new Card();
/**
* if my deck is empty
*/
if ( myFullDeck.isEmpty() == true ) {
myFullDeck.add(interCard); // make previously created card first in the deck
} // End of if ( myFullDeck.isEmpty() == true )
/**
* below line starts its execution after one item
* was added to the deck
*/
else if ( !myFullDeck.isEmpty() ) // any following card are placed in the deck
{
if (myFullDeck.contains(interCard))
{
System.out.println("Copy");
}
else if(!myFullDeck.contains(interCard))
{
System.out.println("No Copy");
myFullDeck.add(interCard);
}
/**
* if (myFullDeck.contains(interCard) == true ) // only after checking their copy presence in the deck
* { while (myFullDeck.contains(interCard) == true) { interCard = new Card(); } // End of while (myFullDeck.contains(interCard))
* myFullDeck.add(interCard); } // End of if (myFullDeck.contains(interCard))
* else if (myFullDeck.contains(interCard) == false) {
* myFullDeck.add(interCard); } // End of else if (!myFullDeck.contains(interCard))
*/
} // End of else if ( myFullDeck.isEmpty() == false )
} // End of while ( myFullDeck.size() != fullDeckLength )
System.out.println("My Full Deck : ");
System.out.println(myFullDeck);
Iterator<Card> myDeckIterator = myFullDeck.iterator();
while(myDeckIterator.hasNext())
{
System.out.println(myDeckIterator.next());
}
} // End of public void createFullDeck()
Пожалуйста, помогите! Что я делаю не так?
РЕДАКТИРОВАТЬ 1:
/**
* Below method: equalsTo
* is in charge of comparing
* two cards.
* @return
*/
public boolean equalsTo(Card cardP)
{
if((this.getCardSign() == cardP.getCardSign()) &&
this.getCardValue() == cardP.getCardValue())
{
return true;
}
else
{
return false;
}
}