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はデフォルトではソートしません。クラスの名前を考えると、これは私が初めてそれに遭遇したときも予想外でした。

あなたは2つのことのうちの1つをすることができます。呼び出しSimpleSortingVector.setSort(true)て、変更のたびにベクトルが常にソートされるようにします。これは驚くべきことにデフォルトではオンになっていません。または、SimpleSortingVector.reSort()すべての要素をベクターに追加した後に呼び出して、1回のバッチ操作で並べ替えを実行することもできます。

于 2012-11-30T07:55:15.230 に答える