用于存储大量数据的最佳集合

时间:2012-11-27 10:02:28

标签: java collections

我需要在集合中存储大量字符串。因为我只有钥匙,所以我不需要地图。数据大小可能达到400万或更高。目前我正在使用LinkedHashSet。 linkedhashSet的性能很好,但它使用了很多内存。我试过LinkedList,花了太多时间。

我的要求是我需要维护广告订单。检查每个项目是否在列表/集合中可用,然后抛出错误(如果存在)。

我也尝试使用逗号分隔的字符串,但它也没有给出很大的改进。

是否有人建议更好的解决方案。

2 个答案:

答案 0 :(得分:1)

TreeSet非常适合维护秩序。 还要确保使用适当的搜索算法来检查收藏品的条目,这可以大大提高您的表现!

答案 1 :(得分:1)

您是否尝试实现TRIE?它维护按字母顺序排序的单词,并且它占用的内存较少,因为您不为每个字符串维护单独的对象。而不是在一个节点中只存储一个字符。 见https://forums.oracle.com/forums/thread.jspa?messageID=8787521http://en.wikipedia.org/wiki/Trie