hashmap声明如下:
HashMap<Employee, Hobby> hm = new HashMap<Employee, Hobby>()
有一个业余爱好班和员工班。 我申请了一个方法:
public void addEmployees(HashMap<Employee, Hobby> hm)
{
public void addEmployees(int num, HashMap<Employee, Hobby> hm)
{
Scanner sc=new Scanner(System.in);
for (int i = 0; i <= num; i++)
{
System.out.println("Enter name of employee");
String name = sc.next();
hm.put(name);
}
}
}
我在hm.put(name)
行收到错误,我不知道如何在这里包含Hobby类属性作为值。
答案 0 :(得分:1)
您的代码存在两个问题。首先,您无法创建嵌套方法定义。另一个问题是您使用put
方法 - 它要求您指定键和值。您的HashMap是从Employee
到Hobby
的地图,因此您需要首先传递员工参数,然后再传递业余爱好:
hm.put(new Employee(name), new Hobby(hobby));
^------key-------^ ^----value-----^
您可能需要先从用户那里获得爱好,就像从输入中阅读name
一样。
与问题没有直接关系,但您的for
循环似乎也不正确 - 您将比为num
指定的参数多一个提示。
for(int i=0;i<=num;i++)
应该是
for (int i = 0; i < num; i++)
*
答案 1 :(得分:1)
在java中添加地图时,该方法需要两个参数
System.out.println("Enter name of employee");
String name=sc.next();
System.out.println("Enter hobby");
String hobby=sc.next();
hm.put(new Employee(name),new Hobby(hobby));
所以在你的情况下你需要这样的东西
boolean def_english = Locale.getDefault().getISO3Language().equals(Locale.ENGLISH.getISO3Language());