如何使用SimpleSortingVector在黑莓中对矢量进行排序?

时间:2012-11-30 00:03:25

标签: blackberry java-me

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

}

1 个答案:

答案 0 :(得分:4)

SimpleSortingVector默认情况下不排序。考虑到班级的名字,这也是我第一次遇到它时出乎意料。

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