我不会过分担心读/写性能(虽然显然尽可能快地总是好的),而是我正在寻找一种尽可能节省内存的有序集合实现。有什么建议吗?
答案 0 :(得分:3)
那么只需将其存储在您需要的大小的数组中,然后对其进行排序。 O(n log n)的一次工作,之后的每次搜索都是O(log n)。您可以轻松地将已排序的数组转换为带有Arrays.asList()的List。
答案 1 :(得分:2)
最小的排序集合是ArrayList
;它并不比底层阵列大得多。如果您在其上调用sort()
,则会对内容进行排序。
答案 2 :(得分:1)
为什么不将它们存储为Fibonacci Heap?它们快速,小巧,有效。如果这太复杂了,您可以查看其他几种类型的堆实现。许多堆可以存储为数组。这意味着您只需要与集合中的对象一样多的存储空间。
答案 3 :(得分:0)
TreeSet
具有良好的内存保护,并且时间性能提供 O(log n)插入/查找。
答案 4 :(得分:0)
来自google-collections的ImmutableSortedSet是我所知道的最小的满足您要求的东西(“有序集合实现”),但不可修改。