首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java - List还是Array?

Java - List还是Array?
EN

Stack Overflow用户
提问于 2013-03-22 01:48:47
回答 4查看 6.8K关注 0票数 4

我知道列表使Java中的事情变得更容易,而不是使用硬设置的数组(列表允许您随意添加/删除元素,并且它们可以自动调整大小,等等)。

我读过一些东西,建议在java中应该尽可能避免数组,因为它们根本不灵活(有时会施加奇怪的限制,例如如果您不知道数组需要的大小,等等)。

这是完全停止使用数组而只使用列表逻辑的“好实践”吗?我确信List类型比数组消耗更多的内存,因此具有更高的开销,但是这有意义吗?大多数列表都会在运行时被GC,如果它们被随意放置的话,所以也许这并不像我想的那么重要?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-03-22 01:50:47

我认为一个很好的经验法则是除非你需要一个Array (出于内存/性能的原因),否则应该使用Lists。否则,Lists通常更容易维护,因此不太可能导致未来的错误。

List在自动扩展方面提供了更多的灵活性/功能,所以我建议使用List,除非您的内存非常紧张(无法承受List带来的开销),或者不介意在扩展/收缩时保持Array的大小。

尽量不要对代码进行过多的微观管理,而是专注于更易辨别和可读的组件。

票数 5
EN

Stack Overflow用户

发布于 2013-03-22 01:51:06

我不喜欢教条。了解规则;知道何时打破规则。

“从不”太强了,特别是当涉及到软件的时候。

ArraysLists都是GC的潜在目标,所以这是一件容易的事情。

是的,在开始之前,你必须知道数组的大小。对于你这样做的情况,它没有什么问题。

使用java.util.Collectionsjava.util.Arrays类可以很容易地根据需要来回切换。

票数 9
EN

Stack Overflow用户

发布于 2013-03-22 01:52:39

这取决于列表。LinkedList可能只在需要时才占用空间,而ArrayList通常会在达到其容量时极大地增加空间。在内部,ArrayList是使用数组实现的,但它是一个始终大于所需大小的数组。然而,由于它存储的是引用,而不是对象,所以在大多数情况下,内存开销可以忽略不计,我相信这种便利是值得的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15554612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档