Java 使用compareTo()按字母顺序排序的列表
有人能帮我整理一下分类的链表吗。它应该按字母顺序打印东西。我有两个问题 1.当我在numNodes=1时添加第一个时,第一个自动消失(在本例中,Elaine消失)。 2.随后,应该是最后一项的项目仍然是第一项,而其余的项目则安排得很好Java 使用compareTo()按字母顺序排序的列表,java,linked-list,compareto,sortedlist,Java,Linked List,Compareto,Sortedlist,有人能帮我整理一下分类的链表吗。它应该按字母顺序打印东西。我有两个问题 1.当我在numNodes=1时添加第一个时,第一个自动消失(在本例中,Elaine消失)。 2.随后,应该是最后一项的项目仍然是第一项,而其余的项目则安排得很好 101 public void addOrdered(E item) { 102 ListNode<E> newNode = new ListNode<E> (item, null); 103 if(numN
101 public void addOrdered(E item) {
102 ListNode<E> newNode = new ListNode<E> (item, null);
103 if(numNodes == 0) {
104 this.addFirst(item);
105 System.out.println(numNodes);
106 return;
107 }
108 else if(numNodes == 1) {
109 ListNode<E> curr = head;
110 // if alphabetically in front, add in front
111 if((newNode.getElement()).compareTo(curr.getElement())<0) {
112 System.out.println("ADD IN FRONT");
113 this.addFirst(item);
114 return;
115 }
116 // if alphabetically behind, add behind
117 else {
118 System.out.println("ADD IN BEHIND");
119 curr.setNext(newNode);
120 }
121 }
122 else { //find position to add in between
123 ListNode<E> curr = head.getNext(), prev = head;
124 while((curr != null) && ((newNode.getElement()).compareTo(curr.getElement())>0 )) {
125 prev = curr;
126 curr = curr.getNext();
127 }
128 newNode.setNext(curr);
129 prev.setNext(newNode);
130 }
131 numNodes++;
132 System.out.println(numNodes);
133 }
134 }
我的输出是
1
[Elaine]
ADD IN FRONT
[Diana]
3
[Diana, Avery]
4
[Diana, Avery, Candy]
5
[Diana, Avery, Bubble, Candy]
List:
[Diana, Avery, Bubble, Candy]
使用node==null而不是node==0进行比较。珠心指向什么?
1
[Elaine]
ADD IN FRONT
[Diana]
3
[Diana, Avery]
4
[Diana, Avery, Candy]
5
[Diana, Avery, Bubble, Candy]
List:
[Diana, Avery, Bubble, Candy]