0

ハッシュマップがあり、単一のキーと値を出力する方法に苦労しています。私はそれらすべてを印刷することができますが、それらの1つだけを印刷する方法を知りたいですありがとう

import java.util.HashMap;


public class Coordinate {

static class Coords {
    int x;
    int y;

    public boolean equals(Object o) {
        Coords c = (Coords) o;
        return c.x == x && c.y == y;
    }

    public Coords(int x, int y) {
        super();
        this.x = x;
        this.y = y;
    }

    public int hashCode() {
        return new Integer(x + "0" + y);
    }

    public String toString()
    {
        return x + ";" + y;
    }


}

public static void main(String args[]) {

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

    map.put(new Coords(65, 72), "Dan");


    map.put(new Coords(68, 78), "Amn");
    map.put(new Coords(675, 89), "Ann");

    System.out.println(map.size());
    System.out.println(map.toString());

}
}

現段階では

3
{65;72=Dan, 68;78=Amn, 675;89=Ann}

しかし、それを表示したいだけです

65;72=Dan

見てくれてありがとう

4

6 に答える 6

3

このMap.get(K)メソッドを使用すると、目的のキーの値を取得できます。だからあなたはこれを行うことができます:

Coords c = new Coords(65,72);
System.out.println(c + " -> " + map.get(c));

これは、HashMap や TreeMap など、あらゆる種類のマップで機能します。を使用して、マップ内のすべてのキーのセットを取得することもできますMap.keySet()

于 2012-08-05T16:42:23.690 に答える
0

そのメソッドから派生しHashMapてオーバーライドするだけですtoString

于 2012-08-05T16:42:09.263 に答える
0

ハッシュマップの呼び出しで特定の動作が必要です。ハッシュ マップのデフォルトで一般的な動作は、すべての要素を出力することです。特定の動作が必要な場合は、それを独自のクラスにラップして、カスタムの toString 実装を提供することをお勧めします。また、マップから特定の要素を取得した後、特定の要素を単に出力することを検討してみませんか。

于 2012-08-05T16:42:43.530 に答える
0

Map には、キーを受け取ることができる get() というメソッドがあります。指定された座標に対して、一致する値を見つけるために equals および hashcode メソッドが呼び出されます。この方法を使用します。

PS: あなたの equals メソッドは、比較するオブジェクトが Coords であると常に想定していますが、そうではない場合があります。

于 2012-08-05T16:50:26.017 に答える
0

私はあなたがそれを持っている必要があると思います、より体系的に見えます(キーは一意になります):

HashMap<String, Coords> map = new HashMap<String, Coords>();    
map.put("Dan", new Coords(65, 72));
map.put("Amn", new Coords(68, 78));
map.put("Ann", new Coords(675, 89));

次に、特定の値に対してSystem.out.println(map.get("Dan").toString());、座標を返す必要があります

更新:あなたのコードによると、それは次のようになります:

System.out.println(new Coords(x, y) + "=" + map.get(new Coords(x, y)));

于 2012-08-05T16:46:57.977 に答える
-1

ここでは、 map.get(key) メソッドだけを使用して値を抽出できると思います。正式なもの以外の派手な外観が必要な場合は、クラス内の toString() メソッドをオーバーライドします。

于 2016-01-16T14:40:45.477 に答える