容器的选择

List选择

1.对于有数组组成的ArrayList,无论列表的大小如何,get和set访问速度很快和一致。LinkedList,访问时间对于较大的列表明显增加访问时间

2.在ArrayList列表插入元素,必须创建空间并把所有的引用向前移动,这会随着Arraylist的尺寸增加带来负担;LinkedList底层基于链表,会在每一个位置保存前一个元素、后一个元素的引用和自身值,只需要链接新的元素即可。

Set选择

HashSet的性能总是比treeset好,特别是在添加和查询元素时,这两个操作也是最重要的操作。TreeSet存在的理由它可以维持元素的排序状态,需要一个排好序的Set,可以选择TreeSet

Map选择

首选HashMap,当要求map始终保持有序,可以选择TreeMap。LinkedHashMap插入速度比HashMap慢,因为在维护散列的数据结构同时还需维护链表(以保持插入顺序)

HashMap性能因子

容量:表中桶位数

初始容量:表在创建时所拥有的桶位数,HashMap都具有允许你指定初始容量的构造器

尺寸:表示当前存储的项数

负载因子:尺寸/容量,空表的负载因子是0,半满表的负载因子是0.5。HashMap默认的负载因子是0.75,当负载情况打到该负载因子的水平时,容器将自动增加容量(桶位数),实现方式是使容量大致加倍,并重新将现有的对象分布到新的桶位中集中(被称为在散列)

快速报错:

java容器有一种保护机制,能够防止多个进程同时修改同一个容器的内容,如果在迭代遍历某个容器的时候,另外一个进程介入其中,并且插入、删除或者修改容器中某个对象,就会报错。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值