所以我试图将一串单词作为键放入地图中,并将一组字符串作为值放入地图中。 Person1只是一个单词串,Person2是一个集合。
Map<String, Set<String>> newMap = new TreeMap<String, Set<String>>();
Set<String> newSet = new TreeSet<String>();
newSet.add(person2);
map.put(person1, newSet);
//System.out.println(map);
所以person1是:
Apples
Apples
Pears
Oranges
Apples
和第2个人是:
[Love]
[Like]
[Dislike]
[Hate]
[OK]
当我将person1和person2放入地图并运行程序时,Java会更新密钥的值(苹果可能是Love,Like和OK,但由于最后一个值正常,因此将其设置为OK)
{Apples = [OK]}
{Pears = [Dislike]}
{Oranges = [Hate]}
我想要的是:
{Apples = [Love, Like, OK]}
{Pears = [Dislike]}
{Oranges = [Hate]}
这可能吗?如果是这样,怎么样?
答案 0 :(得分:2)
使用:
map.get(person1).put(yourvalue);
答案 1 :(得分:1)
您正在寻找Guava Multimaps之类的内容。您可以选择那里的任何实现。
答案 2 :(得分:1)
您需要检索已与该关键字相关联的Set,并将新单词添加到该集合中。只有当密钥没有设置时才应创建新的设置。
Set<String> set = map.get(person1);
if (set == null) {
set = new TreeSet<String>();
map.put(person1, set);
}
set.add(person2);