java-存储字符串值-哪一种效率最高-链表、数组列表或hashmap

java-存储字符串值-哪一种效率最高-链表、数组列表或hashmap,java,arraylist,linked-list,hashmap,Java,Arraylist,Linked List,Hashmap,在java应用程序中,我有一个需求,用户将定义一个字符串值,然后继续向原始值追加更多的字符串值 用户可以定义多个不同的命名字符串 从hashmap、数组列表和链表中,根据以下标准,我应该使用哪一个: (1) 最高内存效率 (2) 每个字符串值的最大可能空间 另外,在所有3个选项(hashmap/数组列表/链表)中单个字符串值的最大可能大小是多少?如果用户正在输入字符串,您不必担心。最大字符串长度超过20亿 有史以来最快的打字速度,每分钟216字 这意味着即使是打字速度快的打字员也需要一分钟来写

在java应用程序中,我有一个需求,用户将定义一个字符串值,然后继续向原始值追加更多的字符串值

用户可以定义多个不同的命名字符串

从hashmap、数组列表和链表中,根据以下标准,我应该使用哪一个:

(1) 最高内存效率 (2) 每个字符串值的最大可能空间


另外,在所有3个选项(hashmap/数组列表/链表)中单个字符串值的最大可能大小是多少?

如果用户正在输入字符串,您不必担心。最大字符串长度超过20亿

有史以来最快的打字速度,每分钟216字

这意味着即使是打字速度快的打字员也需要一分钟来写1K封信。写入一个最大长度的字符串需要1491天,不间断。(假设他们的键盘、计算机或用户在尝试中死亡)

您不太可能需要最高效的数据结构,使用最简单、最明显的选择是更好的方法。(这也是因为用户无法以足够快的速度键入内容)


一台Kindle可以在一台售价不到100英镑的设备中储存数千本书。用户可以写所有的实时数据,但写的数据不足以填满一个小而便宜的移动设备。

节省您的时间和使用,或者(如果您需要线程安全)。

如果您正在创建一个文本编辑器,用户可以跳转到字符串中的任何位置并开始更改它,则需要
数组列表,间隙缓冲区是一种相当好的数据结构:

字符串就是字符串就是字符串。如果用户只是在字符串中追加内容,那么为什么需要集合呢。您可以使用StringBuilder或StringBuffer。如果您需要一个映射(因为您的字符串有一些键/值关系),列表如何工作?如果您没有键/值关系,映射将如何为您工作?在选择ArrayList与LinkedList时,决策基于列表的更改量与列表的迭代次数或通过索引检索的值。