2017-02-12 8 views
0

Ich schreibe gerade meine eigene ArrayList Klasse und habe eine Liste von Karten in einem Deck initialisiert. Mit der ArrayList-Klasse kommen mehrere Instanzmethoden, und zwar eine, in der ich ein bestimmtes Objekt gebe und eine Rückmeldung darüber erwarte, ob die Liste dieses Objekt enthält oder nicht. Die Methode ist gut eingerichtet, aber der verwirrende Teil für mich ist, wie ich eine Möglichkeit zum Auffinden dieses bestimmten Objekts aus der erstellten Liste eingerichtet habe.Ein neues Objekt gleich einem anderen spezifischen Objekt setzen

Im Folgenden finden Sie die aktuelle einrichten ich im Client:

public static void main(String[] args) { 
    ArrayList deck = new ArrayList(); 

    for (Card.Suits suit : Card.Suits.values()) 
     for (Card.Ranks rank : Card.Ranks.values()) 
      deck.add(new Card(suit, rank)); 

    Object obj1 = ...; 
    boolean element_found = deck.isIn(obj1); 
    if(element_found) 
     System.out.println(obj1 + " is in the list"); 
    else 
     System.out.println(obj1 + " isn't in the list... dang"); 
} 

Wenn es um den Abschnitt, wo ich auf eine bestimmte Karte Objekt aus der erstellten Liste initialisieren obj1 wollen, bin ich nicht sicher wie es geht. Gibt es eine Methode, bei der ich einfach obj1 = "Herz Ace" oder etwas in dieser Richtung austippe?

Weil, wenn es darum ging, eine ähnliche Liste zu erstellen, noch diese Zeit aus Integer-Objekten bestand, wollte ich herausfinden, ob ein Objekt in einer gegebenen Liste war, ich setze obj1 gleich der Literalnummer, nach der ich suchte .

Auch, wenn es erforderlich ist, hier ist der Code für die "IsIn" -Methode und ihre Komplement-Methode "finden."

Antwort

0

Sie können HashMap als Hilfsprogramm verwenden, um das Objekt zu finden.

HashMap<String,Card> map = new HashMap<String,Card>(); 

for (Card.Suits suit : Card.Suits.values()) 
     for (Card.Ranks rank : Card.Ranks.values()) { 
      Card card = new Card(suit, rank); 
      deck.add(card); 
      // key is a String to represent card 
      // key can be "AH" => Ace of Heart 
      // "TS" => Ten of Spade 
      map.put(key, card);    
     } 

Object obj1 = map.get("5C"); // find 5 of Club 
0

Sie müssen nur Ihre find() Methode als der Index des Decks Array implementieren.

+0

Entschuldigung, ich sollte klarstellen, dass isIn (Objekt n) eine Methode war, die ich in der ArrayList-Klasse erstellt habe, die verwendet werden sollte, um die Überprüfung durchzuführen. – Musilix

+0

In diesem Fall wäre es wahrscheinlich gut, den Code für diese Methode in Ihre Frage aufzunehmen. Vielleicht liegt das Problem dort. – Sienile

+0

Ich habe sichergestellt, dass der Code für die isIn-Methode und die find-Methode hinzugefügt wird, um zu arbeiten. Doch mein Problem liegt nicht dort. Wie gesagt, ich bin einfach perplex darüber, was die Syntax für mich sein sollte, um obj1 gleich einem bestimmten Kartenobjekt aus der Deckliste zu setzen. – Musilix

Verwandte Themen