我有一个结构
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"));
如果您看一下文档,可用的方法应该允许您执行所需的操作。