这将取决于您的要求,哪个集合是合适的,如果它是 String 列表然后使用,java.util.List或者它是 String 集然后使用,java.util.Set或者它也是键值对然后使用Map。
每个接口的实现也特定于需求。
当您谈论数据量时,它有两件事:
谈性能如果是 ArrayList - add 操作在摊销常数时间内运行,即添加 n 个元素需要O(n)时间。所有其他操作都在线性时间内运行(粗略地说)。与LinkedList实现相比,常数因子较低。
在这种情况下,HashSet它也为基本操作 ( add, remove, contains and size)提供恒定的时间性能,假设散列函数在桶中正确地分散元素。
HashMap为O(1)基本操作 ( get and put)提供恒定时间性能。
如果大集合耗尽内存,则谈论内存,这意味着如果您获得OutOfMemoryExcaption. 然后你必须通过传递来增加你的堆空间-Xmxn。
-Xmx n
指定内存分配池的最大大小(以字节为单位)。该值必须是大于 2MB 的 1024 的倍数。附加字母 k 或 K 以指示千字节,或附加字母 m 或 M 以指示兆字节。默认值为 64MB。此值的上限在 Solaris 7 和 Solaris 8 SPARC 平台上约为 4000m,在 Solaris 2.6 和 x86 平台上约为 2000m,减去开销量。像 -Xmx2048m