我写了这个小代码(下面) -
显示输出Singh
。我想知道如何使用单个键 s 添加Patel和Singh两个值?
import java.util.*;
public class Practice {
public static void main(String [] args)
{
String s="Sameer";
HashMap<String,String> map=new HashMap();
map.put(s, "Patel");
map.put(s, "Singh");
String value=map.get(s);
System.out.println(value);
}
}
喜欢s - &gt;帕特尔,辛格。 s指向两个值。
答案 0 :(得分:0)
你做不到。地图的基本思想是拥有唯一的密钥
答案 1 :(得分:0)
不可以,因为地图中的每个值都有唯一的键,所以无法完成。
你对理解这些概念感到困惑。 我建议先了解一下HashMap的工作原理。 Link1和Link2
我认为您关注的是将新条目对象添加到同一个存储区,但不会意味着您可以有两个用相同的键映射的值,不,根本不是!
HashMap中的存储桶值存储为Entry
类的对象, ,其属性为单键和单值 (Value can be simple object or Collection Object).
然而,您可以通过使用 按键映射的 集合对象来实现所需的功能,然后您可以遍历集合对象阅读所有价值观。
以下是使用List -
的示例import java.util.*;
class Practice {
public static void main(String [] args)
{
String s="Sameer";
HashMap<String,List<String>> map=new HashMap();
List<String> lastNameList = new ArrayList<String>();
lastNameList.add("Patel");
lastNameList.add("Singh");
map.put(s, lastNameList);
List<String> getList=(ArrayList)map.get(s);
for(String val : getList) {
System.out.println(val);
}
}
}
现在输出将是 -
Patel
Singh
您可以将此想法扩展到任何级别。它取决于你。
希望它会有所帮助!