面试中常考的几个集合类(java)
面试中常考的几个集合类(java)
阳光下的天蝎 发表于3个月前
面试中常考的几个集合类(java)
  • 发表于 3个月前
  • 阅读 1
  • 收藏 0
  • 点赞 0
  • 评论 0

这里首先借用下网上的一张集合接口关系图

下面简述几种常用集合的区别,还有部分不常用集合类未描述

Iterable接口

迭代器接口,这是Collection类的父接口。实现这个Iterable接口的对象允许使用foreach进行遍历,也就是说,所有的Collection集合对象都具有"foreach可遍历性"。这个Iterable接口只有一个方法: iterator()。它返回一个代表当前集合对象的泛型<T>迭代器,用于之后的遍历操作

 

List接口:

Collection接口子接口,单列集合,有序的,可重复

ArrayList:数组结构,线程不安全 ,查询快

LinkedList:链表结构,线程不安全,增删速度快

Vector:数组结构,线程安全同步的,速度慢,但后版本被ArrayList所代替

 

Set接口:

Collection接口子接口,单列集合,无序的,不可重复,需要迭代器(Iterator)来查询结果

HashSet:线程不安全,存取快

TreeSet:线程不安全,可排序(二叉树形式存在)TreeSet会调用集合元素的compareTo(Object obj)方法来比较元素之间的大小关系,然后将集合元素按升序排序,即自然排序。

 

 

Map接口:

Map没有继承Collection接口,Map集合类Key-value 形式存在 不可重复,双列集合

 

HashMap:无序的,线程安全,访问快,不同步

HashTable:无序的,安全,同步,读取访问比HashMap慢,写入速度快

LinkedHashMap:有序的,哈希双向链表储存,遍历慢(容量无关,数据有关)

TreeMap:默认键升序排序

 

Queue 队列接口

Queue用于模拟"队列"这种数据结构(先进先出 FIFO)。队列的头部保存着队列中存放时间最长的元素,队列的尾部保存着队列中存放时间最短的元素。新元素插入(offer)到队列的尾部,

   访问元素(poll)操作会返回队列头部的元素,队列不允许随机访问队列中的元素。结合生活中常见的排队就会很好理解这个概念

 

Collection与Collections的区别:

Collection是集合类接口的父级接口,Collections是集合的辅助工具类,包含有添加,删除等操作方法

共有 人打赏支持
粉丝 0
博文 1
码字总数 583
×
阳光下的天蝎
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: