gpt4 book ai didi

java - 包含键和对象列表的排序映射

转载 作者:行者123 更新时间:2023-12-01 18:17:58 24 4
gpt4 key购买 nike

我有一张结构为 Map<String, List<EmployeeIncome>> 的 map 其中键保存员工 ID,员工收入保存员工详细信息,例如 empName、empCompany、 RevenueSrc。收入来源可能有多种(工资、出租房屋等)。

public class EmployeeIncome{
private String empName;
private String empCompany;
private String incomeSrc;


public String getEmpName() {
return empName;
}
public void setEmpName(String empName) {
this.empName = empName;
}
public String getEmpCompany() {
return empCompany;
}
public void setEmpCompany(String empCompany) {
this.empCompany = empCompany;
}
public String getIncomeSrc() {
return incomeSrc;
}
public void setIncomeSrc(String incomeSrc) {
this.incomeSrc = incomeSrc;
}



}

员工公司名称将是唯一的,员工 ID 在所有收入来源的情况下都相同。现在 map 包含员工的多个数据,我想根据员工姓名对 map 进行排序。虽然我正在尝试使用Comparator并尝试但无法获得所需的输出。

提前致谢。

最佳答案

TreeMap 这样的排序映射将根据其键进行排序,而不是分配给它们的值。因此,由于您的键是员工 ID 字符串,因此您将获得仅按 ID 排序的输出。

您可能应该重新考虑您的数据结构。最好将 Employee 对象映射为键。然后您就可以访问员工的姓名以及他的id

public class Employee implements Comparable<Employee> {

private long id;
private String name;

public long getId() {
return id;
}

public long getName() {
return name;
}

public int compareTo(Employee other) {
if (name != null) {
if (other != null) {
return name.compareTo(other.getName());
}
return 1;
}
if (other != null && other.getName() != null) {
return -1;
}
return 0;
}

您还可以实现Comparable,以便TreeMap 按员工姓名对员工进行排序。

关于java - 包含键和对象列表的排序映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28473003/

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