【发布时间】:2017-10-09 01:50:09
【问题描述】:
编辑:错别字已修复,歧义已尝试修复。
我在一个文本文件中有一个五位整数的列表。预期数量只能与 5 位整数可以存储的一样大。不管有多少,这个文件中的第一行告诉我有多少个整数,所以永远不需要调整大小。示例:
3
11111
22222
33333
有 4 行。第一个表示文件中有三个 5 位整数。接下来的三行包含这些整数。
我想读取这个文件并存储整数(不是第一行)。然后我希望能够大量搜索这个数据结构,仅此而已。我要做的就是读取数据,将其放入结构中,然后能够确定其中是否有特定的整数。永远不会发生删除。在这个结构上做的唯一事情就是插入和搜索。
您认为合适的数据结构是什么?我最初的想法是某种二叉树。但是,经过思考,HashTable 可能是最好的实现。请给点意见和帮助?
【问题讨论】:
-
The expected amount could be in the millions... 但最大的五位数字是 100,000 的 1。您的搜索的性质是什么? -
Deletions will never occur. The only things done on this structure will be insertions and deletions.... 错字? -
如果有数百万个整数都低于 99999,那么我可能会使用一桶数字计数。
numbers = new int[100000];然后通过索引它的桶来获取一个数字的出现。 -
您能详细说明您正在执行的操作吗?是纯粹的插入和删除吗?您是否需要能够按排序顺序进行迭代?在某个范围内搜索?合并东西?是否允许重复?
-
“经过思考,HashTable 可能是最好的实现” ->
HashSet.
标签: java data-structures