我并没有过度担心读/写性能(尽管显然越快总是好的),而是我正在寻找一种尽可能节省内存的排序集合实现。有什么建议么?
问问题
1078 次
5 回答
3
那么只需将它存储在您需要的大小的数组中,然后对其进行排序。O(n log n) 的一次工作,之后的每次搜索都是 O(log n)。您可以使用 Arrays.asList() 轻松地将排序后的数组转换为列表。
于 2009-12-30T23:48:16.740 回答
2
最小的排序集合是ArrayList
; 它并不比底层数组大多少。如果您调用sort()
它们,则会对内容进行排序。
于 2009-12-30T23:56:34.887 回答
1
为什么不将它们存储为Fibonacci Heap?它们快速、小巧且有效。如果这太复杂了,您可以查看其他几种类型的堆实现。许多堆可以存储为数组。这意味着您只需要与收藏中的对象一样多的存储空间。
于 2009-12-30T23:53:08.603 回答
0
ATreeSet
具有不错的内存保护,并且时间性能提供O(log n)插入/查找。
于 2009-12-30T23:58:20.230 回答
0
来自google-collections的ImmutableSortedSet是我所知道的满足您要求的最小的东西(“排序集合实现”),但不可修改。
于 2010-01-04T21:17:27.510 回答