用于存储海量数据的java最佳集合
我需要在一个集合中存储大量字符串。我不需要地图,因为我只有钥匙。数据量可能达到400万或更大。目前我正在使用LinkedHashSet。linkedhashSet的性能很好,但占用了大量内存。我试过LinkedList,但花了太多时间
我的要求是我需要维持插入顺序。检查列表/集合中的每个项目是否可用,然后在出现错误时抛出错误
我也尝试过使用逗号分隔的字符串,但也没有太大的改进
有谁能提出更好的解决方案吗
你可以在下面搜索框中键入要查询的问题!
我需要在一个集合中存储大量字符串。我不需要地图,因为我只有钥匙。数据量可能达到400万或更大。目前我正在使用LinkedHashSet。linkedhashSet的性能很好,但占用了大量内存。我试过LinkedList,但花了太多时间
我的要求是我需要维持插入顺序。检查列表/集合中的每个项目是否可用,然后在出现错误时抛出错误
我也尝试过使用逗号分隔的字符串,但也没有太大的改进
有谁能提出更好的解决方案吗
# 1 楼答案
TreeSet非常有助于维持秩序。 另外,请确保使用合适的搜索算法来检查条目的集合,这可以大大提高您的性能
# 2 楼答案
您是否尝试实施了TRIE?它维护按字母顺序排序的单词,而且占用的内存更少,因为您不需要为每个字符串维护单独的对象。相反,在一个节点中只存储一个字符。 见https://forums.oracle.com/forums/thread.jspa?messageID=8787521 和http://en.wikipedia.org/wiki/Trie