如何在 Java 中将句子存储在临时数组中?

Posted

技术标签:

【中文标题】如何在 Java 中将句子存储在临时数组中?【英文标题】:How to store sentences in a temporary array in Java? 【发布时间】:2011-07-05 17:21:17 【问题描述】:

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

有人有什么想法吗?

【问题讨论】:

不知道数组大小的可以使用ArrayList。 【参考方案1】:

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

Java 文档中关于 ArrayList 内存管理的一些说明:

容量是数组的大小 用于存储元素 列表。它总是至少一样大 作为列表大小。作为元素 添加到 ArrayList,它的容量 自动增长。的详细信息 增长政策未明确 除了添加元素之外 具有不变的摊销时间成本。

一个应用程序可以增加 ArrayList 实例的容量 在添加大量之前 使用 ensureCapacity 的元素 手术。这可能会减少金额 增量重新分配。

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

【讨论】:

我在考虑一个数组列表,但我对数组或数组列表的问题是,字符串的大小是否有限制?整个段落是否会被视为单个字符串? 字符串和集合的限制往往非常大,想想 gigs 然后不要考虑限制。他们很少担心。至于如何解释段落,这取决于您,并且取决于数据文件的格式。 好的,谢谢。我会尝试使用 ArrayList 看看效果如何。【参考方案2】:

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

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

如果要添加字符串:

strings.add("New String");

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

strings.get(1);

ArrayList 类中还有很多方法。

【讨论】:

【参考方案3】:

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

【讨论】:

以上是关于如何在 Java 中将句子存储在临时数组中?的主要内容,如果未能解决你的问题,请参考以下文章

如何在android和java中将字符串拆分为句子? [复制]

在Java中将句子字符串转换为单词的字符串数组

在 Google Cloud BigQuery 中存储句子嵌入

如何在iphone编程中将位置从临时文件更改为高清

如何在文件中搜索存储在 List<string> 中的句子(Java)

如何在 VueJs 中将数组存储到 Vuex