2

Javaで辞書を作成する方法に興味があります。Python には に似た辞書設定があったことを知っていますdictionary = {"key": "something"}。2 つの同期リストを作成し、各リストで同じ位置を使用して辞書を模倣するなど、Java でこれを行う他の方法があることは知っています。

ArrayList<Object> keys = new ArrayList<Object>();
ArrayList<Object> values = new ArrayList<Object>();
public void add(Object key, Object value){
    keys.add(key);
    values.add(value);
}
// And a subsequent return function
public Object getValue(Object key) {
    return values.get(keys.indexOf(key));
}

しかし、これは私に悪いプログラミングを叫びます。単一のステートメントでそれを行うためのより簡単な構文はありますか? この件に関してすでに尋ねられたほとんどの質問はクローズされており、その結果、ほとんど役に立ちません。

4

6 に答える 6

1

簡潔なマップの作成 (およびその他の多くの便利なこと) については、Guavaをお勧めします。特に、ImmutableMap.ofおよびImmutableMap.Builderを参照してください。

例:

Map<String, Integer> map = ImmutableMap.of(
    "one", 1,
    "two", 2,
    "three", 3
);

Map<String, Integer> map = new ImmutableMap.Builder<String, Integer>()
    .put("one", 1)
    .put("two", 2)
    .put("three", 3)
    .build();
于 2013-07-18T02:10:23.803 に答える
1

単語には複数の意味が含まれる場合があります。MultiMap を使用できます。

    MultiMap dictionary = new MultiValueMap();
    dictionary.put("key", "something");
    dictionary.put("key", "Important");
    System.out.println("dictionary Value : "+dictionary.get("key"));

辞書の値: [何か、重要]

于 2013-07-18T02:10:54.560 に答える