2017-02-12 44 views
0

我正在編寫我自己的ArrayList類,並初始化了卡片列表。在ArrayList類中有幾個實例方法,具體來說就是給出一個特定的對象,並期望返回一個包含該對象是否包含該列表的消息。該方法設置良好,但對我來說,令人困惑的部分是我如何設置一種方法來從創建的列表中找到該特定對象。設置一個等於另一個特定對象的新對象

下面是設置了我在客戶端的電流:

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"); 
} 

當涉及到我想要的初始化OBJ1從創建列表中的特定對象卡的部分,我不知道如何去做。是否有某種方法可以在其中輸入obj1 =「Ace of Hearts」或其他方法?

因爲當談到創建一個類似的列表,但那個時間由Integer對象組成,一旦我想知道對象是否在給定的列表中,我只是設置obj1等於我正在搜索的文字數。

此外,以防萬一需要時,下面是「isIn」方法和它的補充方法「find」的代碼。

public ArrayList{ 
    public boolean isIn(Object ob){ 
     boolean ReturnValue = false; 
     if(find(ob) != -1){ 
      ReturnValue = true; 
     } 
     return ReturnValue; 
    } 
    public int find(Object n){ 
     int ReturnValue = -1; 
     for(int i = 0; i < list.length; i++){ 
      if(n.equals(list[i])) 
       ReturnValue = i; 
     } 
     return ReturnValue; 
    } 
} 

回答

0

您可以使用HashMap作爲幫助程序來查找對象。

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

你只需要實現你的find()方法作爲甲板數組的索引。

boolean element_found = deck.isIn(obj1); 
    if(element_found) { 
     System.out.println(obj1 + " is in the list"); 
     deck[find(obj1)] = Card(suit, rank); 
    } 
    else 
     System.out.println(obj1 + " isn't in the list... dang"); 
} 
+0

對不起,我應該明確說明isIn(Object n)是我在ArrayList類中創建的一個方法,用於執行手頭的檢查。 – Musilix

+0

在這種情況下,在您的問題中包含該方法的代碼可能會很好。問題可能在那裏。 – Sienile

+0

我已經確認添加了isIn方法的代碼以及它用於工作的find方法。然而,我的問題並不在於此。正如我所說,我只是困惑於什麼語法應該爲我設置obj1等於從甲板列表中的某個特定的卡對象。 – Musilix

相關問題