我无法使用SimpleSortingVector为我的黑莓应用程序排序Vector。我的东西没有排序它保持不变。
这是我到目前为止所拥有的......
MyComparator类
private Vector vector = new Vector(); //Assume that this vector is populated with elements already
SimpleSortingVector ssv = new SimpleSortingVector();
ssv.setSortComparator(new Comparator() {
public int compare(Object o1, Object o2) {
Record o1C = (Record)o1;
Record o2C = (Record)o2;
return o1C.getName().compareTo(o2C.getName());
}
public boolean equals(Object obj) {
return compare(this, obj) == 0;
}
});
for(int i=0;i<vector.size();i++){
Record record = new Record();
record=(Record) vector.elementAt(i);
//when you add elements to this vector, it is to post to be automatically sorted
ssv.addElement(record);
}
班级记录
public class Record {
String name;
int price;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
}
答案 0 :(得分:4)
SimpleSortingVector默认情况下不排序。考虑到班级的名字,这也是我第一次遇到它时出乎意料。
你可以做两件事之一。调用SimpleSortingVector.setSort(true)
以确保在每次更改后始终对向量进行排序。令人惊讶的是,默认情况下不会打开它。
或者,您可以在向向量添加所有元素后调用SimpleSortingVector.reSort()
,以便在一次批处理操作中进行排序。