[英]Difference between the List and Enumeration
我有一个写一个方法来获取所有记录并返回列表类型,但我失去了内存错误。 所以我将返回类型从List更改为Enumeration,在方法中,而不是ArrayList,使用Vector并在方法的末尾返回vector.elements。 它没有任何错误。 但我不明白为什么。
有人可以解释为什么这个枚举有效吗?
Enumeration
是Iterator
的“旧版本”。
Vector
是ArrayList
的“旧版本”。
记忆差异不应该是显着的,所以你观察到的波动可能是另一回事。
根据列表的大小,您可能需要增加JVM的最大内存(使用Xmx
, Xms
和/或XX:MaxPermSize
)
你必须修复别的东西。 Vector将使用比ArrayList 更多的内存,并且返回枚举而不是列表本身只会增加更多的内存使用量,除非你的调用者使用列表迭代器,在这种情况下它是行球。 这种策略肯定没有理由使用明显更少的内存。
除非您返回原始列表的副本 ? 作为一个新的ArrayList? 这至少会在制作副本时将内存使用量增加一倍,但它必须是一个非常长的列表......
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.