20

私は現在、5文字の長さのHashMap<String, Integer>タイプのキーで満たされたものを使用しています。String他のキーの一部であり、先頭にある 4 文字以下の特定のキーを検索し、すべてのヒットを のコレクションとして取得するにはどうすればよい<Key, Value>ですか?

4

8 に答える 8

30

カスタムデータ構造を作成しない限り、反復が唯一のオプションです。

for (Entry<String, Integer> e : map.entrySet()) {
    if (e.getKey().startsWith("xxxx")) {
        //add to my result list
    }
}

より時間効率の良いものが必要な場合は、これらの部分キーを追跡するマップの実装が必要になります。

于 2013-05-21T07:55:14.090 に答える
4

を介してこれを行うことはできません。マップで文字列の長さに基づく検索を実装HashMapするには、独自の実装を記述する必要があります。Map

于 2013-05-21T07:54:14.520 に答える
3
Map<String, Integer> result = new HashMap<String, Integer>;
for(String key : yourMap.keySet()) {
    if(key.length() == 4){
        result.put(key, yourMap.get(key);
    }
}

このコードを実行すると、4 文字のキーを持つすべてのキーと値のペアがresult.

于 2013-05-21T07:56:04.993 に答える
0

キーとパターンHashMap<String, Integer>のみを実行keySet()して行うことができます。contains()String

于 2013-05-21T07:54:09.323 に答える