三大容器类的实现类的特点

什么是容器类

容器类:顾名思义就是一个容器,是一个装引用类型数据的容器。它也叫集合类。

它主要由三种构成:list、set、map。它们都是接口。

常见的容器类

 Map接口的实现类主要有:HashMap、TreeMap、Hashtable等

Set接口的实现类主要有:HashSet、TreeSet、LinkedHashSet等

 List接口的实现类主要有:ArrayList、LinkedList、Stack以及Vector等

list:有序容器,元素可重复,可以插入多个null值,元素都有索引值。

arraylist:就是存入一个Object动态数组,也是我们常用的集合,它允许任何元素的插入,甚至包括null。每一个ArrayList都有一个初始化的容量(10),该容量代表了数组的大小,随着容器中容量的不断增加,容器的大小也会随着增加。在每次向容器中增加元素时,会进行容量检查,当快溢出时,会进行扩容操作。

set:无序容器,不存在重复元素。只允许存在一个null值

hashset:无重复(去重)。底层采用的是hashmap。

LinkedHashSet:LinkedHashSet继承与HashSet,并且其内部是通过LinkedHashMap来实现的。

TreeSet:这个是有序且去重的。底层是红黑树。

map:是一个键值对集合。key无序且唯一。value是可以重复的

hashmap:JDK1.8之前HashMap由数组+链表组成的,数组是HashMap的主体,链表则是主要为了解决哈希冲突而存在的(“拉链法”解决冲突).JDK1.8以后在解决哈希冲突时有了较大的变化,当链表长度大于阈值(默认为8)时,将链表转化为红黑树,以减少搜索时间

LinkedHashMap:在hashmap在上面结构的基础上,增加了一条双向链表,使得上面的结构可以保持键值对的插入顺序。同时通过对链表进行相应的操作

HashTable:数组+链表组成的,数组是HashMap的主体,链表则是主要为了解决哈希冲突而存在的

TreeMap:红黑树

面试题:

1.需要得到一份不重复的数据 你需要什么样的集合来接受数据?

仅仅是不重复可以用hashset。如果是有序不重复可以用linkedhashlist、linkedhashmap等。

(注意一下:treeset是按大小排序的且去重的)。

2.需要映射关系的一组数据 应该使用哪个集合来处理?

map(可以说下具体实现类。比如hashmap 、treemap等特点)


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值