每個邏輯是比較他們將通過部門工資中分組和排序的:
public class Employee {
Integer EmployeeDepartmentId;
Integer EmplyoyeeId;
Integer Salary;
public Employee(Integer employeeDepartmentId, Integer emplyoyeeId, Integer salary) {
EmployeeDepartmentId = employeeDepartmentId;
EmplyoyeeId = emplyoyeeId;
Salary = salary;
}
public Integer getEmployeeDepartmentId() {
return EmployeeDepartmentId;
}
public void setEmployeeDepartmentId(Integer employeeDepartmentId) {
EmployeeDepartmentId = employeeDepartmentId;
}
public Integer getEmplyoyeeId() {
return EmplyoyeeId;
}
public void setEmplyoyeeId(Integer emplyoyeeId) {
EmplyoyeeId = emplyoyeeId;
}
public Integer getSalary() {
return Salary;
}
public void setSalary(Integer salary) {
Salary = salary;
}
public static void main(String[] args) {
List<Employee> employees=new ArrayList<Employee>();
employees.add(new Employee(3, 3, 50));
employees.add(new Employee(2, 4, 2500));
employees.add(new Employee(1, 1, 100));
employees.add(new Employee(2, 5, 1100));
employees.add(new Employee(1, 2, 20));
for(Employee e:employees)
System.out.println(e.getEmployeeDepartmentId()+" "+e.getEmplyoyeeId()+" "+e.getSalary());
Collections.sort(employees,new Comparator<Employee>() {
@Override
public int compare(Employee e, Employee e1) {
if(e.getEmployeeDepartmentId()==e1.getEmployeeDepartmentId()){
return e.getSalary().compareTo(e1.getSalary());
}else
return e.getEmployeeDepartmentId().compareTo(e1.getEmployeeDepartmentId());
}
});
for(Employee e:employees)
System.out.println(e.getEmployeeDepartmentId()+" "+e.getEmplyoyeeId()+" "+e.getSalary());
}
}
使用每個部門的單獨列表。 – m0skit0
我可以得到某種方式的子列表與所有的員工屬於一個部門?我的意思是它應該遍歷主列表,創建第一部門的子列表,找到最小值並保存在另一個數組列表中,然後檢查下一個部門。可以這樣做嗎? –
我沒有看到沒有解析整個列表 – m0skit0