在两个条件下对节点进行排序?

时间:2017-06-21 15:25:08

标签: java list sorting nodes

才开始学习java并且坚持这个问题 让我们说我有一份员工清单(我只使用其中的三个例子),没有特定的顺序,我通过列表创建一个节点的排序链接,每个节点都包含一个名称和工资周。这三个节点将分别如此:

(John,1000)
(Bob,1000)
(Adam,1000)

我想先按薪水排序,然后按名称按字母顺序排序,这样所有连接的节点都会显示如下:

(Adam,1000)(Bob,1000)(John,1000)

我还有办法增加工资,所以如果我要做bobNode.increaseBy(200)之类的事情(一次增加的数量总是相同的,即每次为每个名字调用方法时为200)连接的节点将更新并看起来像这样

(鲍勃,1200)(亚当,1000)(约翰,1000)

有没有有效或简单的方法来做到这一点?目前,我的Node类中有一个compareTo方法,它返回this.name.compareTo(other.name),因此当我浏览员工列表时,节点按字母顺序排序。无论如何要检查两种情况并排序?

我正在考虑做一些类似于salary.compareTo(other.salary)== 0比较名称的东西,但由于节点已经存在于链表中,它不会真正起作用。

首先按字母顺序添加和排序节点,调整节点的工资后删除该节点并将其再次添加到正确的位置?

我的另一个与之前类似的想法是删除已调整的节点并创建一个新的节点链接列表,其中包含按字母顺序排序的所有工资量的节点。然后,在完成员工列表后,我将添加这些新节点。如果说我有200,000名雇员的工作清单,并且我需要创建并遍历许多节点,那么这不会有点问题吗?

我还想注意,如果不首先添加所有员工,薪水就会增加。

非常感谢任何帮助和想法!

0 个答案:

没有答案