Java中哪个排序的集合实现具有最小的内存占用?

时间:2009-12-30 23:27:37

标签: java collections libraries

我不会过分担心读/写性能(虽然显然尽可能快地总是好的),而是我正在寻找一种尽可能节省内存的有序集合实现。有什么建议吗?

5 个答案:

答案 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是我所知道的最小的满足您要求的东西(“有序集合实现”),但不可修改。