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,但您可以模拟一个 multimap ( Map<String, List<Short>>) 或试用 Guava,例如:https ://code.google.com/p/guava-libraries/

于 2013-08-12T20:45:19.857 回答
0
Map<String, List<Short>>

键(字符串)将是唯一的。List<> 将能够保存短裤列表。

如果要确保数字和键是唯一的,请使用 Set 而不是列表。

请记住初始化您放入映射中的列表(第一次获取像“A”这样的键将返回 null,因此请检查它是否为 null,如果是则创建一个列表,将您的值放入其中,然后放入列表进入地图)。

于 2013-08-12T20:45:03.697 回答
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 回答