集合

所谓集合就是一个容器里面可以放各种元素,容器提供了增、删、改、查这几个功能。

容器有List和Set还有Map这三大类。

LIst中有ArrayList和LinkedList,ArrayList底层是个长度可变的数组,所以它有索引,可以通过普通for循环,增强for循环,以及Iterator来遍历。

LinkedList底层按照链式法则来存放数据,可以通过增强for循环和Iterator来遍历。

当List类型的集合在使用Iterator和for循环遍历时不能在遍历的同时增加集合元素,在使用Iterator时不能用List自带的remove方法移除元素,只能使用Iterator的remove方法来移除元素。

List类型的集合是有序的并且里面的元素可以重复。

HashSet中的元素是无序的并且不可以重复,HashSet会使用equals方法来判断是否有重复的元素,如果有需要的话可以改写equals方法,但随之必须再改写HashCode,因为当对象equals相等时其HashCode也肯定相等。

HashSet输出值的顺序与输入时的顺序不一直,这是因为存元素的时候使用了Hash算法,当输出元素时输出元素的顺序按照hash算法得出来的先后顺序而输出。

HashMap是以key-value的形式存放元素的,当你要找一个元素时只要找到他的key就可以找到它的value了。HashMap也是使用hash算法的,所以输出元素时的顺序与输入时的顺序不一样。

当你将key原来连接的value改掉时那么之后key对应的就是新的value值了。

由于底层存储方式的不同,造成了性能上的差异。

Array读快改慢

Linked改快读慢

Hash两者之间

转载于:https://my.oschina.net/allsmallpig/blog/1358727

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值