银行客户经理收到了一份杂乱的公司客户清单,共计500份,每份公司客户包含客户ID、客户名称、客户职级以及客户工资这些信息,客户经理想要按照一定的优先顺序调查每个公司客户的信用情况,优先顺有两个要求,1、职级越高越优先,从高到底分别是A\B\CD\E。2、职级相同时,工资越高越优先。有什么办法可以快速得到这个排序之后的清单?请写一个主方法测试类,把排序后的信息展示到工作台上。
时间: 2023-05-30 07:05:10 浏览: 64
可以使用Java中的Collections.sort()方法进行排序,首先需要定义一个实体类来存储每个公司客户的信息,如下所示:
```
public class CompanyCustomer {
private int id;
private String name;
private String level;
private int salary;
public CompanyCustomer(int id, String name, String level, int salary) {
this.id = id;
this.name = name;
this.level = level;
this.salary = salary;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public String getLevel() {
return level;
}
public int getSalary() {
return salary;
}
}
```
然后在主方法中创建一个ArrayList来存储所有的公司客户信息,然后使用Collections.sort()方法进行排序,排序时需要传入一个Comparator,按照题目要求定义如下:
```
public class CustomerComparator implements Comparator<CompanyCustomer> {
@Override
public int compare(CompanyCustomer o1, CompanyCustomer o2) {
if (!o1.getLevel().equals(o2.getLevel())) {
return o2.getLevel().compareTo(o1.getLevel());
} else {
return Integer.compare(o2.getSalary(), o1.getSalary());
}
}
}
```
最后将排序后的信息输出到控制台即可,完整代码如下:
```
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
public class Main {
public static void main(String[] args) {
ArrayList<CompanyCustomer> customers = new ArrayList<>();
customers.add(new CompanyCustomer(1, "张三", "A", 10000));
customers.add(new CompanyCustomer(2, "李四", "B", 15000));
customers.add(new CompanyCustomer(3, "王五", "C", 12000));
customers.add(new CompanyCustomer(4, "赵六", "D", 13000));
customers.add(new CompanyCustomer(5, "钱七", "E", 11000));
Collections.sort(customers, new CustomerComparator());
for (CompanyCustomer customer : customers) {
System.out.println(customer.getId() + " " + customer.getName() + " " + customer.getLevel() + " " + customer.getSalary());
}
}
static class CompanyCustomer {
private int id;
private String name;
private String level;
private int salary;
public CompanyCustomer(int id, String name, String level, int salary) {
this.id = id;
this.name = name;
this.level = level;
this.salary = salary;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public String getLevel() {
return level;
}
public int getSalary() {
return salary;
}
}
static class CustomerComparator implements Comparator<CompanyCustomer> {
@Override
public int compare(CompanyCustomer o1, CompanyCustomer o2) {
if (!o1.getLevel().equals(o2.getLevel())) {
return o2.getLevel().compareTo(o1.getLevel());
} else {
return Integer.compare(o2.getSalary(), o1.getSalary());
}
}
}
}
```