Java集合常见问题汇总

集合是java中很常用的一个技术,今天我就来记录一下有关集合的一些常见问题汇总,如有不足之处,大家可以一起来讨论一下。

首先,大家都知道collection它继承自Iterable,而实现Iterable接口的类可以拥有增强for循环的功能,实现Iterable的集合类必须提供一个名为iterable()的方法,该方法的返回值为Iterable;

Iterable方法一些属性:hasNext():是否存在下一项     next():获取下一项    remove():删除由next()最新返回的项;

 

 

一、继承Collection的List、Set和Queue:

1.List:

特点:有序、可以添加重复的元素

①ArrayList:查询速度快

②LinkedList:增加删除速度快

2.Set:

特点:不重复、无序

①HashSet:

速度最快、无序、集合元素可以为null(只能放入一个null)

②TreeSet:有序(升序)

③LinkedList:有序(按照添加的顺序)

3.Queue:先进先出

##比较一下collection接口的remove()方法和Iterator接口的remove()方法区别:

性能方面:

①collection的remove方法采用单链表结构查询,效率低(需要从集合中一个一个遍历才能找到对象)

②iterator的remove方法结合next()方法使用,效率高

容错方面:

在使用itrator遍历时,使用collection的remove会报错,而iterator不会报错

3.写法上面:

  1. 一个有参一个无参

##、Array和ArrayList的区别

①.ArrayList是Array的复杂版本

②.存储的数据类型:Array只能存储相同数据类型的数据,而ArrayList可以存储不同数据类型的数据

③.长度的可变:Array的长度是固定的,而ArrayList的长度是可变的

二、Arrays和Map集合

  1. Arrays:
  2. Map:

①HashMap:无序、访问快

②TreeMap:有序(升序)

③LinkedMap:有序(添加顺序)、有HashMap的保存速度

##HashMap和HashSet区别

##、ArrayList和LinkedList的区别

ArrayList:查询速度快

LinkedList:增加删除速度快

##、HashSet、TreeSet、LinkedList区别

①.需要按照插入的顺序存储集合,使用LinkedHashSet

②.需要集合有排序功能,使用TreeSet

③.需要速度快的集合,使用HashSet

##HashMap的实现原理

HashMap会根据当前bucket的占用情况自动调整容量

16*0.75=12

16是默认容量值,0.75是扩容因子

##List、Set、Map之间的区别

注:不够理解可以看下图,更加直接明了

最后的最后:写文章不容易啊,亲若是喜欢或者对你有帮助记得点赞、+关注或者收藏呦~就酱,啾咪~

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值