2

我无法使用 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;
    }

}

4

1 回答 1

4

SimpleSortingVector默认不排序。鉴于班级的名称,这对我来说也是第一次遇到它时是出乎意料的。

你可以做两件事之一。调用SimpleSortingVector.setSort(true)以确保在每次更改后始终对向量进行排序。令人惊讶的是,默认情况下没有打开。或者,您可以SimpleSortingVector.reSort()在将所有元素添加到向量后调用,以批量操作进行排序。

于 2012-11-30T07:55:15.230 回答