存储字符串列表的最佳方法

时间:2013-03-05 19:45:48

标签: java arrays string

存储和读取真正长字符串的最佳方法是什么,每个条目都是另一个数组的索引?

现在我有了这个

String indices="1,4,6,19,22,54,....."

该字符串最多有数十万个条目,所以我想也许我可以使用像Linked List这样的数据结构。有谁知道使用它会更快吗?

4 个答案:

答案 0 :(得分:3)

List<String> list = new ArrayList<String>();

list.add("1");
list.add("2");

你需要声明string类型的arraylist。然后添加它。

答案 1 :(得分:2)

这取决于你对字符串(索引)和相应数组的处理方式。此外,它将取决于你将如何访问它们。

我建议您先阅读有关在java中实现的数据结构的概述,特别是在Collections Framework中。

我们可以提供一些建议,但您必须向我们提供更多信息,特别是我在开头提到的信息(您想要什么,如何存储和访问这些数据等)。

例如,如果您需要快速访问索引数据,可能字符串甚至不是最好的方法。也许地图会更好。例如,索引可以是键,索引数组可以是映射的值。但这只是一个无效的例子,我强烈建议你给我们更多的信息。

答案 2 :(得分:0)

我真的很喜欢使用ArrayList类,如果您习惯使用数组,ArrayList或Collections Framework的任何成员。会工作得很好。对于你想要做的事情。

ArrayList<String> indices = new ArrayList<String>();
indices.add("");

答案 3 :(得分:0)

我有类似的预感,我想喜欢1k数量的字符串并解析它们(搜索目的是了解它是否包含项目)。

因此,我发现不是使用Java收集框架-映射或设置或列出

如果我将数据简单地存储在数组中并使用for循环开始解析数据,则速度会更快。

您访问此链接,并查看我们以微秒为单位计算的实际输出。

https://www.programcreek.com/2014/04/check-if-array-contains-a-value-java/

因此,如果数组未排序,则使用简单的蛮力是赢家  (通常我们有)。

但是如果对数组进行排序,arrays.BinarySearch()就是赢家。