如何在 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中将字符串拆分为句子? [复制]
在 Google Cloud BigQuery 中存储句子嵌入