Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在两种情况下对节点进行排序?_Java_List_Sorting_Nodes - Fatal编程技术网

Java 在两种情况下对节点进行排序?

Java 在两种情况下对节点进行排序?,java,list,sorting,nodes,Java,List,Sorting,Nodes,只是刚开始学习java,就被困在这个问题上。 假设我有一个没有特定顺序的员工列表(我将只使用其中的三个示例),我遍历该列表并创建一个节点排序链接,所有节点都包含名称和每周工资。这三个节点分别如下所示: (约翰,1000) (鲍勃,1000) (亚当,1000) 我想先按薪水排序,然后按名称的字母顺序排序,这样所有连接的节点看起来都像这样: (亚当,1000)(鲍勃,1000)(约翰,1000) 我还有一种方法可以提高工资,所以如果我要做像bobNode.increaseBy(200)这样的事情(

只是刚开始学习java,就被困在这个问题上。
假设我有一个没有特定顺序的员工列表(我将只使用其中的三个示例),我遍历该列表并创建一个节点排序链接,所有节点都包含名称和每周工资。这三个节点分别如下所示:

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

我想先按薪水排序,然后按名称的字母顺序排序,这样所有连接的节点看起来都像这样:

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

我还有一种方法可以提高工资,所以如果我要做像bobNode.increaseBy(200)这样的事情(每次增加的数量总是相同的,即每次为每个名称调用该方法时增加200个),连接的节点将更新,类似这样

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

有没有什么有效或简单的方法可以做到这一点?目前,我的节点类中有一个compareTo方法,它返回这个.name.compareTo(other.name),因此在我浏览员工列表时,节点按字母顺序排序。是否需要检查条件和排序

我在考虑做一些类似于if salary.compareTo(other.salary)==0的事情,而不是比较名称,但是由于节点已经存在于链接列表中,所以它实际上不起作用

先按字母顺序添加和排序节点,然后在调整节点的薪资时删除该节点并再次将其添加到正确的位置,怎么样

我的另一个想法与前一个类似,就是删除调整后的节点,并创建一个新的节点链表,其中包含按字母顺序排序的所有节点。在浏览完员工列表后,我将添加这些新节点。如果说我有一个20万名员工的名单,工资范围很广,因此我必须创建和迭代许多节点,这不是有点问题吗

我还想指出,工资可以增加,而不必先增加所有员工


任何帮助和想法都将不胜感激

你走得很对,我相信你想要的是类似于他们所说的“优先级队列”的东西。如果您还没有,我会对此进行研究,因为有很多代码示例可以指导您的实现