2017-12-23 11 views
0

タイプのマップを1つの汎用クラスに作成しました。私が直面している問題は、いったんこのMapオブジェクトに5つのキーペア値を追加したことです。私はマップオブジェクトの参照値を使用してそれらの5つのペアを戻す方法を混乱させるようなものです。あなたが見る通り、私はループ1を使用してKey値を得ることができます。これは、キーと値のペアがマップオブジェクトに追加されている間に取得されます。ジェネリックマップクラスからキーと値のペアを取得する方法

マップオブジェクト 'mp'にすべてのキーと値のペアを追加したら、どのようにしてすべてのキーペアの値を取得できますか?

もっと明確にするコードを見てください。あなたがアクセスしたい

class Maps<K, V> { 
K key; 
V value; 
int size; 

Maps(int size) { 
    this.size = size; 
} 

public void add(K k, V v) { 
    key = k; 
    value = v; 

} 

public void show() { 
    System.out.print("key=" + key); 
    System.out.println(" value=" + value); 
} 

public int getSize() { 
    return size; 
}} 

class MyMaps { 
public static void main(String args[]) { 

    Maps<Integer, String> mp = new Maps<Integer, String>(5); 
    System.out.println("mp=" + mp); 

    // Loop1 
    for (int i = 0; i < mp.getSize(); i++) { 
     mp.add(i + 1, "JAI " + i); 
     mp.show(); 
    } 

    // Loop2 

    for (int i = 0; i < mp.getSize(); i++) { 

     System.out.println(mp); 

    } 

} 

}

+3

すみませんが、このコードは全く意味がありません。ジェネリック薬を使用するには早すぎる。最初に基本に戻り、オブジェクトが何であるか、インスタンスと静的変数は何か、これが何であるか、オブジェクトを作成する方法を学ぶ必要があります。ここに1つのマップオブジェクトがあり、5回修正され、配列に5回追加されました。また、あなたのコード(あなたのためのIDEのコード)をインデントし、Javaの命名規則を尊重することを学ぶ必要があります。 –

+0

'Map.entrySet()'、 'Map.keySet()'または 'Map.values()'はあなたが探しているものですか? – Ralph

+0

これらは現在java.util。*パッケージにあります。私は自分の地図をここにデザインしました。あなたが戻って入力キーのペアの値を取得する方法を私に導くことができればそれを簡単に保つ。明らかな解決策の1つは、上記のMapsクラスで提案したような上記の関数を実装することです。 –

答えて

0

は、マップエントリ(別名キー、値のペア)です。

for (Map.Entry<Integer, String> entry : mp.entrySet()) { 
    Integer key = entry.getKey(); 
    String value = entry.getValue(); 
    // do whatever you need to do with key and value 
} 
関連する問題