0

目前,我正在从文本文件中刮出一大块数据(段落/字符串)并将其写入新文件。但是,我计划稍后添加一些条件,因此希望能够取出这块数据并将其仅存储在临时数组中,然后在满足条件时写入文件。但是,我不确定如何在事先不知道数组大小的情况下将其写入数组。

有没有人有任何想法?

4

3 回答 3

8

不要使用数组。使用可以动态增长的 String 类型的集合,例如ArrayList。以下是一些快速代码示例:示例 1示例 2

Java 文档中关于 ArrayList 内存管理的一些注释:

容量是用于存储列表中元素的数组的大小。它总是至少与列表大小一样大。随着元素被添加到 ArrayList,它的容量会自动增长。除了添加一个元素具有恒定的摊销时间成本这一事实之外,没有指定增长策略的细节。

应用程序可以在使用 ensureCapacity 操作添加大量元素之前增加 ArrayList 实例的容量。这可以减少增量重新分配的数量。

请注意,即使是文档也没有具体说明内部管理的方式。

于 2011-07-05T17:23:54.237 回答
2

在 Java 中,一个ArrayList(或任何其他类型的 Java 集合)可以为您处理所有内存管理:

ArrayList<String> strings = new ArrayList<String>();

如果要添加字符串:

strings.add("New String");

如果要获取某个索引处的字符串(在本例中为索引 1):

strings.get(1);

ArrayList类中还有很多方法。

于 2011-07-05T17:27:32.377 回答
1

您确实需要一个动态增长的集合。ArrayList是第一个想到的;在内部,它与常规数组非常相似,因此如果需要,它可以提供快速随机访问。LinkedList如果您无法估计最终需要的元素数量,则可能更适合,前提是您只需要顺序访问其元素(可以使用随机访问,但速度不会很快)。

于 2011-07-05T17:40:23.603 回答