0

わかった、

ここに私の問題があります....List<short>letterListたとえば、「1,2,3,4,5,6,7,8,9,10」があります

私がしていることは、このリストを反復処理してから、値を返す別のメソッドに値を渡すことです。

それで:

string value = null;
for(Short foo : letterList)

{
   value = getSomeValue(foo) //returns a letter A or B or C
}

私がやろうとしているのは、ハッシュマップを次のようにすることです。

key: a, value 1,5,7
key b, value: 2,3,4
key c, value: 6,8,9,10

特にこれらの値ではありませんが、私の主張は理解できます

これを行う方法がわからない<set<string>, List<short>

任意の提案をいただければ幸いです

4

4 に答える 4

2

HashMap<Character, List<Short>> map

私の理解では、値のリストを文字で保存する簡単な方法を探していたのですか? その場合は、上記を使用してください。

文字で並べ替えたい場合 (簡単に印刷できるようにするため)、次を使用します。

TreeMap<Character, List<Short>> map

map.get('A')標準メソッドを使用して値を取得および取得し、関連付けられたリストから特定の値を反復処理または取得できます。

于 2013-08-12T20:50:37.493 に答える
1

Java には組み込みの MultiMap はありませんが、マルチマップ ( ) をシミュレートするか、たとえばhttps://code.google.com/p/guava-libraries/Map<String, List<Short>>で Guava を試すことができます。

于 2013-08-12T20:45:19.857 に答える
0

完全なユースケースがわからないので、データ構造の編成を別の方法で見ることをお勧めします。例えば

Map<Integer, String> map = new HashMap<Integer, String>();

例のようにキーが 1,2....10 で、値が

1 -> a
2 -> b
3 -> b
etc. 

元の「リスト」を取得するには、次を使用できます-

Set<Integer>  numbers = map.keySet();
于 2013-08-12T20:55:44.527 に答える
0
Map<String, List<Short>>

キー (文字列) は一意になります。List<> は short のリストを保持できます。

数値とキーが一意であることを確認したい場合は、リストの代わりにセットを使用します。

マップに配置したリストを初期化することを忘れないでください (最初に "A" のようなキーを取得すると null が返されるため、null かどうかを確認し、null である場合はリストを作成し、それに値を入れて、リストを入れますマップに)。

于 2013-08-12T20:45:03.697 に答える