2

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

现在我有这个

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

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

4

4 回答 4

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

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

您需要声明字符串类型的arraylist。然后添加到它。

于 2013-03-05T19:46:42.897 回答
2

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

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

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

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

于 2013-03-05T19:53:29.923 回答
0

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

ArrayList<String> indices = new ArrayList<String>();
indices.add("");
于 2013-03-05T20:20:03.857 回答
0

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

因此,我发现而不是使用 java 集合框架 -映射或集合或列表

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

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

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

因此,在未排序的数组(通常我们有)的情况下,使用简单的蛮力是赢家。

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

于 2019-03-19T11:36:36.100 回答