我有一个结构

class A
{
    float key;
    Foo data;
}


我需要维护按key排序的这些结构的数组。在数组中插入和删除元素必须是有效的(例如O(log n))。 key不保证唯一。另外,我需要按排序顺序枚举数组。不需要按索引随机访问。

如果我使用的是C ++,则在这里使用std::multiset

您建议在Android版Java中使用什么?

最佳答案

您可以使用Guava Multiset来实现所需的功能。
在Android Studio中,您只需向build.gradle添加以下依赖项:

compile 'com.google.guava:guava:19.0'


然后,您只需要声明类的Multiset,如下所示:

Multiset<A> multiset = HashMultiset.create();

multiset.add(new A(1.5, "a"));


如果您看一下文档,可用的方法应该允许您执行所需的操作。

10-06 10:53