在Java中使用List或Map调用size()有多贵?

App*_*rew 10 java

在Java中使用List或Map调用size()有多贵?或者如果频繁访问,最好将size()的值保存在变量中?

Ste*_*n C 13

答案是它取决于实际的实现类.对于一些MapCollection类,size()是一个廉价的恒定时间操作.对于其他人来说,可能需要对会员进行统计.

Java集合的cheatsheet(V2)通常是这样一个很好的信息来源,但主机服务器是目前有点恶心.

"coderfriendly.com"域名已不复存在,但我在scribd.com上找到了一份备忘单.

size()从查看源代码也可以看出成本.(这是一个"实现细节",几乎可以保证不会改变......对于标准集合类.)

跟进

不幸的是,cheatsheet只记录了size队列实现的复杂性.我认为这是因为它适用O(1)于所有其他收藏品; 看@seanizer的回答.

  • 为所有内容+1,但我想为Collections Cheatsheet额外增加+1(这真的很棒) (3认同)