Java-为Hashmap添加唯一值

时间:2013-08-12 20:41:55

标签: java

确定,

这是我的问题....我有一个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 个答案:

答案 0 :(得分:2)

HashMap<Character, List<Short>> map

我的理解是你在寻找一种简单的方法来存储带有角色的值列表?如果是这样,请使用上述内容。

如果您想按字母排序(为了便于打印),请使用以下内容:

TreeMap<Character, List<Short>> map

您可以使用map.get('A')并使用标准方法迭代或从关联列表中获取特定值来获取和获取值。

答案 1 :(得分:1)

Java没有内置的MultiMap,但您可以模拟多图(Map<String, List<Short>>)或尝试Guava,例如:https://code.google.com/p/guava-libraries/

答案 2 :(得分:0)

Map<String, List<Short>>

密钥(String)将是唯一的。列表&lt;&gt;能够拿到一份短裤清单。

如果您想确保这些数字以及密钥是唯一的,请使用Set而不是列表。

请记住初始化放在地图中的列表(第一次获取类似“A”的键将返回null,因此请检查它是否为null,如果是,则创建一个List,将值放入其中,以及将列表放入地图中。)

答案 3 :(得分:0)

不知道您的完整用例,我建议您对数据结构组织有不同的看法。 e.g。

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

如示例中的键为1,2 .... 10,值为

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

要获取原始“列表”,您可以使用 -

Set<Integer>  numbers = map.keySet();