0

我并没有过度担心读/写性能(尽管显然越快总是好的),而是我正在寻找一种尽可能节省内存的排序集合实现。有什么建议么?

4

5 回答 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 回答