我对java中的链表有疑问。我看到了一种有趣的方法,通过String [] args从命令行获取参数到java程序。关于这一点非常有趣的部分是所有字符串都被添加到LinkedList中,以后会迭代它以解释所有选项。
所以问题是,如果你过度使用这个LinkedList并使用非常大的数据量会发生什么?有没有什么方法可以分解它来创建一个缓冲区溢出,或者它只是工作,直到没有更多的内存可分配?
问候,
维拉德
答案 0 :(得分:2)
LinkedList
将展开以容纳新元素并且不会溢出。
但请注意,它们的开销比简单数组大,因此使用LinkedList而不是数组可能会更快地耗尽内存。
答案 1 :(得分:1)
在内存使用或性能之外的大型参数列表中不应存在任何问题。实际上,您可能无法在命令行上获得足够的参数来导致任何类型的内存或性能问题。
请注意,您可以存储对args数组的引用,而不是从中创建新的链接列表(除非您有特定的原因)。
答案 2 :(得分:1)
对于像Java这样的语言的缓冲区溢出,这个帖子可能对你很有意思:Does Java have buffer overflows?
答案 3 :(得分:1)
检查以下链接......这些将帮助您......
Maximum size of HashSet, Vector, LinkedList
http://docs.oracle.com/javase/tutorial/collections/implementations/index.html
祝你好运!!!