【发布时间】:2014-06-11 17:46:15
【问题描述】:
我有一个任务,我们必须在其中创建一个目录来存储姓名和分机号码。在第一部分中,我们必须将信息存储在一个数组中。我们必须能够向 Array 添加一个条目,并且最初读取一个 .txt 文件并将其存储在 Array 中。最后它必须打印数组。我只是想知道什么会更有效率,因为我最近几个月才开始学习代码,这对我来说很难。
1) 首先创建一个大小为 [9999] 的数组会更好(因为这是目录可以拥有的最大条目数,因为每个人都有一个唯一的四位数字)。我有一个名为 count 的 INT,它记录要添加的最后一个 Array[x] 的计数,因此当我调用 addEntry 之类的方法时,它会将条目添加到 [X+1]。
问题在于,根据我的阅读,数组非常庞大,并且可能存在性能问题。此外,我必须能够创建一个“查找”方法,该方法应该能够通过输入他们的姓名在数组中搜索某人的号码。
我的另一个选择: 2)读取文件时,它会计算文件有多少行(每个条目将在自己的行上),然后创建一个包含文本文件中行数的数组。每当我想添加一个新条目时,我都会将数组复制到一个 ArrayList 中,然后返回一个添加了新条目的数组。然而,我也读到复制数组也不是那么好,从现实的角度来看,如果有人要使用这个目录,他们可能每天都在添加条目。
只要我将数组存储在一个数组中并将数组打印到一个表中就可以了,但是当您不知道大小时,制作实际数组的最佳方法是什么? (是的,我知道我可以使用 ArrayList,但它明确表示不能)
另外,如果我使用我的方式,您将如何删除数组中的条目,如果我使用我的方式,则会在删除 x 的 Array[x] 处丢失条目。
提前感谢您的任何回复。
【问题讨论】:
-
这个问题我不是很清楚。你有一个像 3578.txt 这样的文件,你想把 3578 保存在一个数组中,3578.txt 有多少行?
-
必须是数组吗?
Map<Short, String>(HashMap<Short, String>最有可能)将是更好的存储类型。 (您可能需要反转上述类型,具体取决于用于查找的数据。) -
使用 HashMap
-
该文件将类似于 Name
LastName Number 并且将位于单独的行中。 -
这部分必须是一个数组,第二部分我们必须再做一次,但需要一张地图。但是我们的老师要我们使用数组,如果我们不使用数组,我们将不会得到任何分数。
标签: java arrays performance