小编Rob*_*ert的帖子

如何使用比较器对重复的字符串进行排序?

假设我有一个包含工人的列表,每个工人有3个字段:它的名称,他所在的部门(可以只是部门的名称或班级部门的对象)和他的工资.

Elvis       Software Engineering        1000
Samba       Mechanical Engineering      2000
Bamba       Industrial Engineering      3000
Bisli       Medical Engineering         4000
Kinder      Electrical Engineering      1000
Elvis       Software Engineering        9999
Run Code Online (Sandbox Code Playgroud)

现在我想按名字对它们进行排序,并将结果放入队列中.然后将队列放在地图中,从底部到顶部排序,以便排序后我想要的结果是:

Bamba       Industrial Engineering      3000
Bisli       Medical Engineering         4000
Elvis       Software Engineering        1000
Elvis       Software Engineering        9999
Samba       Mechanical Engineering      2000
Kinder      Electrical Engineering      1000
Run Code Online (Sandbox Code Playgroud)

我不允许使用Collection.sort(),因此我使用比较器按名称对工人进行排序,如果名称相同 - 按部门排序,如果部门相同 - 按类别排序薪水.这是我写的比较器:

    class WorkerComparatorByName implements Comparator<Worker<?>> {
    @Override
    public int compare(Worker<?> w1, Worker<?> w2) {
        int compareValue = w1.getName().compareTo(w2.getName());
        if (compareValue != 0)
            return compareValue;
        compareValue = …
Run Code Online (Sandbox Code Playgroud)

java sorting queue treemap comparator

7
推荐指数
1
解决办法
133
查看次数

标签 统计

comparator ×1

java ×1

queue ×1

sorting ×1

treemap ×1