存储和读取真正长字符串的最佳方法是什么,每个条目都是另一个数组的索引?
现在我有了这个
String indices="1,4,6,19,22,54,....."
该字符串最多有数十万个条目,所以我想也许我可以使用像Linked List这样的数据结构。有谁知道使用它会更快吗?
答案 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()
就是赢家。