我有一个名为recordInformation的LinkedList,它包含每个索引的对象。该对象由名字,姓氏,numnbr和由空格分隔的余额组成。所以recordInformation看起来像 [[firstName lastName number balance] [fname lastname number bal]]。 每次我向recordInformation添加记录时,我都会根据姓氏对列表进行排序。我试图编写一个方法,但是当我用另一个方法输出列表时,索引没有改变。比较是否是检查字母顺序的正确方法?
public void sortRecords(LinkedList list){
if (list.size()==1)
return;
Object obj = recordInformation.getLast();
String sortVar = obj.toString();
String[] varArray = sortVar.split(" ");
for (int i=0;i<list.size();i++){
Object obj1 = recordInformation.get(i);
String compare = obj1.toString();
String[] compareArray = compare.split(" ");
//varArray[1] and compareArray[1] hold the last names
if ((varArray[1].compareTo(compareArray[1]))<0){
recordInformation.add(i,obj);
recordInformation.remove(list.size()-1);
}
}
}
答案 0 :(得分:0)
如果从一开始就控制了列表,为什么不将元素插入到正确的位置?
我的意思是如果有A,你需要把C,然后把A-> C,如果B来,那么把A-> B-> C。 这样你就不会使用Collections.sort(或任何类型)。
答案 1 :(得分:0)
如果您想维护排序顺序,同时在插入时做很多事情,那么LinkedList
是最后使用的数据结构之一。
你所追求的是Red-Black树。在java中,它实现为java.util.TreeMap
类