我在使用我正在工作的程序时遇到了很多麻烦。
该程序应该按字母顺序打印出有序链表的元素(因为没有可用于列表的setter)。这就是我所拥有的:
GOrderedList是节点,Event是值。我有想法试图找到这些单词并按字母顺序将它们放在arraylist中。
page=
这产生了一个令人鼓舞的清单 - 但它已经失灵了。我有想法按字母顺序将元素放在新的ArrayList中。我可以将项目放在ArrayList中然后对其进行排序,但我宁愿不这样做。
答案 0 :(得分:0)
您可以使用比较器对其进行排序。如下所示。
public static ArrayList<String> sortEvents(GOrderedList<Event> C) {
// create arraylist
ArrayList<String> sortedList = new ArrayList<String>();
while (true) {
GOrderedList<Event> first = C.getNext();
if (first == null) {
break;
}
String highest = first.getValue().getname();
sortedList .add(highest);
}
Collections.sort(sortedList , new Comparator<String>() {
public int compare(String f1, String f2) {
return f1.toString().compareTo(f2.toString());
}
});
return sortedList ;
};
答案 1 :(得分:0)
代码存在一些问题:
在while循环中调用getNext()
将每次递增并跳过一个值。您可能需要调用hasNext()
方法。
外循环的每次迭代都需要将其元素添加到正确的位置。如上所述,增值总是在最后。
如前所述,有一些标准的方法可以做到这一点,但我的假设是你需要做这个练习。如果没有,请使用比较器。 String的自然比较可能会给你你想要的东西。