2017-02-12 14 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をデッキリストからいくつかの特定のCardオブジェクトに等しく設定するための構文がどうなるべきかについて、ちょっと困惑しています。 – Musilix

関連する問題