只顯示最後一項HashMap
正在顯示。 我的哈希映射由僱員類型的鍵和類型愛好的值組成,但只顯示最後一個條目正在顯示。HashMap只顯示最後一項
請幫我在此代碼刪除錯誤:
public void addEmployees(int a, HashMap<Employee,Hobby> hMap)
{
Employee emp = new Employee();
Hobby hob = new Hobby();
Scanner obj = new Scanner(System.in);
Scanner obj1 = new Scanner(System.in);
for(int i =0; i<a ; i++)
{
System.out.println("Enter id of employee:");
int num = obj.nextInt();
emp.setEmployeeId(num);
System.out.println("Enter name of employee:");
String str = obj1. nextLine();
emp.setName(str);
hob.enterHobby();
hMap.put(emp,hob);
}
}
public static void main(String [] args)
{
HashMap <Employee,Hobby> employeeName = new HashMap <Employee,Hobby>();
System.out.println("Enter the number of employees you want to add");
Scanner obj = new Scanner(System.in);
Scanner obj1 = new Scanner(System.in);
int num = obj.nextInt();
EmployeeManag emg = new EmployeeManag();
emg.addEmployees(num,employeeName);
}
class Hobby
{
ArrayList<String> arr = new ArrayList<String>();
public void enterHobby()
{
Scanner obj1 = new Scanner(System.in);
System.out.println("Add Hobbie");
String str = obj1.nextLine();
arr.add(str);
}
public void displayHobbie()
{
for(String str : arr)
{
System.out.println(str);
}
}
}
class Employee
{
private int employeeId;
private String name;
public int getEmployeeId()
{
return employeeId;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public void setEmployeeId(int employeeId)
{
this.employeeId = employeeId;
}
}
好像你不加入聘用過的員工向您傳遞給你的函數HashMap的,但其他一些哈希表 – Simon 2014-10-09 09:10:38
你有沒有被覆蓋的'equals'和'hashCode'?如果沒有,請了解他們的工作以及HashMap使用它們的方式。 – hyde 2014-10-09 09:10:59
[Java HashMap「put」方法在for循環中可能重複](http://stackoverflow.com/questions/14671164/java-hashmap-put-method-in-a-for-loop) – Niroshan 2014-10-09 09:11:31