【发布时间】:2013-01-28 00:47:31
【问题描述】:
我正在做一个项目,但我不能使用任何现有的 java 数据结构(即 ArraysList、树等)
我只能使用数组。因此,我需要用新的内存动态更新一个数组。
我正在读取文本文件,并为数组内存预分配 100:
String [] wordList;
int wordCount = 0;
int occurrence = 1;
int arraySize = 100;
wordList = new String[arraySize];
while ((strLine = br.readLine()) != null) {
// Store the content into an array
Scanner s = new Scanner(strLine);
while(s.hasNext()) {
wordList[wordCount] = s.next();
wordCount++;
}
}
现在这适用于 100 个以下的列表项。 br.readline 是遍历文本文件每一行的缓冲阅读器。我有它然后将每个单词存储到列表中,然后增加我的索引(wordCount)。
但是,一旦我有一个包含 100 多个项目的文本文件,就会出现分配错误。
如何动态更新这个数组(从而重新发明轮子)?
谢谢!
【问题讨论】:
-
我认为最快的解决方案是计算输入文件中的行数('nix 中的
wc -l filename)并第一次将数组分配到正确的大小。所有这些复制都比倒带文件并读取两次要慢得多...... -
java dynamic array sizes? 的可能重复项
标签: java arrays word-count