确定,
这是我的问题....我有一个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>
任何建议都将不胜感激
答案 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();