gpt4 book ai didi

java - 将 Map 作为用户定义的基础

转载 作者:行者123 更新时间:2023-12-01 17:31:50 25 4
gpt4 key购买 nike

我开发了一个名为 Employee.java 的 pojo。现在我计划将其作为用户定义的集合。我想制作一个 map 并将所有员工类型对象存储在其中。

下面是我的pojo

    public class Employee {     
String name,job;
int salary;


public Employee(String n , String j, int t ) //constructor
{
this.name= n;
this.job=j;
this.salary= t;

}

@Override
public int hashCode()
{
return name.hashCode()+job.hashCode()+salary;

}
@Override
public boolean equals(Object obj) {

Employee e = (Employee) obj;
return this.name.equals(e.name)&&this.job.equals(e.job)&&this.salary==e.salary;
}


}

现在我开发了另一个包含 map 并将存储员工类型对象的类..

   public static void main(String[] args)
{
Map employeeMap = new HashMap();
Employee e = new Employee("Saral", "Trainer", 34000);
Employee e1 = new Employee("Sarall", "saral", 34090);
employeeMap.put("S", e);
employeeMap.put("S1", e);
System.out.println(employeeMap.size());
Set s = employeeMap.entrySet();

Iterator it = s.iterator();
while(it.hasNext())
{
Map.Entry m =(Map.Entry)it.next();
System.out.println(m.getKey()+"\t"+m.getValue());

}

但是当我尝试运行它时,我想获取员工详细信息,但我在屏幕上显示了该对象...我想查看员工值,请告诉我如何从员工对象中获取值。

2
S CollectionsPrac.Employee@285c2854
S1 CollectionsPrac.Employee@285c2854

最佳答案

您需要重写 Employee 类中的 toString 方法,例如:

public String toString() {
return name + " [" + job + "] - salary: " + salary;
}

顺便说一句,你可以替换:

    Iterator it = s.iterator();
while(it.hasNext())
{
Map.Entry m =(Map.Entry)it.next();
System.out.println(m.getKey()+"\t"+m.getValue());

}

System.out.println(s.toString());

除非您确实希望输出以制表符分隔。

关于java - 将 Map 作为用户定义的基础,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10164177/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com