如何在Blackberry应用程序中对持久存储记录进行排序?

时间:2010-01-20 09:03:45

标签: blackberry java-me persistent-storage

你可以帮我在Blackberry应用程序中对持久存储记录进行排序吗? 我想按升序和降序排序......

2 个答案:

答案 0 :(得分:1)

要在黑莓中进行排序,您可以使用 SimpleSortingVector 但坏消息是,SimpleSortingVector不能持久化。 因此,对于持久存储中的排序,您必须编写 你自己的排序方法。

Vector info = (Vector) store.getContents();

现在使用任何排序算法对向量的内容进行排序。

答案 1 :(得分:1)

我假设您指的是存储在PersistentStore中的排序记录,而不仅仅是实现Persistable接口的对象。

为了将您的数据提交到PersistentStore:

SimpleSortingVector ssv = new SimpleSortingVector();
// Construct your records and add them to the vector

PersistentObject po = PersistentStore.getPersistentObject(persistentStoreKey);
po.setContents(new ControlledAccess(ssv, codeSigningKey));
po.commit();

为了检索向量:

Object contents = po.getContents();
if (contents instanceof SimpleSortingVector)
{
    // Cast to a SimpleSortingVector and load your data
}

我相信在PersistentStore中放置SimpleSortingVector应该没有任何问题。但是,它确实混合了数据存储与其行为之间的界限(因为您不仅存储数据记录,还存储比较器和排序信息)。将记录作为Vector存储在PersistentStore中可能是一个更简洁的解决方案,当您从PersistentStore中加载它时,将其复制到您在应用程序运行时使用的SimpleSortingVector中。如果您采用这种方法,您可以以指定的格式存储有关比较器的信息并在Vector中自行排序信息,并在构造SimpleSortingVector时将其解压缩。