存储和读取一个非常长的字符串的最佳方法是什么,每个条目都是另一个数组的索引?
现在我有这个
String indices="1,4,6,19,22,54,....."
该字符串有多达十万个条目,所以我想也许我可以使用像 Linked List 这样的数据结构。有谁知道使用一个会更快吗?
List<String> list = new ArrayList<String>();
list.add("1");
list.add("2");
您需要声明字符串类型的arraylist。然后添加到它。
这将取决于您将如何处理字符串(索引)和相应的数组。此外,这将取决于您将如何访问它们。
我建议您首先阅读有关在 java 中实现的数据结构的概述,特别是在Collections Framework中。
我们可以提供一些建议,但您必须向我们提供更多信息,特别是我在开头提到的那些(您想要什么,如何存储和访问这些数据,等等)。
例如,如果您需要快速访问索引数据,那么字符串可能甚至不是最好的方法。也许地图会更好。例如,索引可以是键,索引数组可以是映射的值。但这只是一个无效的例子,我强烈建议您向我们提供更多信息。
我真的很喜欢使用 ArrayList 类,如果您喜欢使用数组、ArrayList 或 Collections Framework 的任何成员。会工作得很好。对于你想要做的事情。
ArrayList<String> indices = new ArrayList<String>();
indices.add("");
我有类似的预感,我想喜欢 1k 个字符串并解析它们(搜索目的是为了知道它是否包含项目)。
因此,我发现而不是使用 java 集合框架 -映射或集合或列表
如果我将数据简单地存储在数组中并开始使用 for 循环解析数据,它会更快。
您访问此链接并查看我们以微秒计算的实际输出。
https://www.programcreek.com/2014/04/check-if-array-contains-a-value-java/
因此,在未排序的数组(通常我们有)的情况下,使用简单的蛮力是赢家。
但是arrays.BinarySearch()
,如果对数组进行排序,则为赢家。