如何对持久数据进行排序?

时间:2010-07-19 06:30:44

标签: blackberry java-me

我正在制作一个应用程序,其中我在持久对象中长期存储许多日期。

我希望按照顺序列出这些长值,只要新值出现,在持久性中,我们的列表就会被排序。

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:4)

使用net.rim.device.api.util.SimpleSortingVector存储您的数据。

答案 1 :(得分:2)

就像oxigen说的那样,使用SimpleSortingVector ......乍一看并不简单!

您必须创建一个比较器类以传递到排序向量中。见例:

// Your hashtable with key value pairs
Hashtable data = getMyHashTableWithSomeDataInIt();

// Your sorting vector
SimpleSortingVector sorted = new SimpleSortingVector();

// Iterate through you hashtable and add the keys to the sorting vector
for (Enumeration e = data.keys(); e.hasMoreElements();)
{
    String key = (String) e.nextElement();
    sorted.addElement(key);
}

// Pass in the comparator and sort the keys
sorted.setSortComparator(new MyComparator());
sorted.reSort();

// Iterate through your sorted vector
for (Enumeration e = sorted.elements(); e.hasMoreElements();)
{
    String key = (String) e.nextElement();
    Object sortedItem  = (Object) data.get(key);

    // Do whatever you have to with the sortedItem
}

// Sort compartor for sorting strings
class MyComparator implements Comparator {
    public int compare(Object k1, Object k2) {
        return ((((String) k1).compareTo((String) k2)));
    }
}