Java集合List和Set,Map区别详解看完吊打面试官

你只管努力,

——剩下的交给时光。

先上图看得直观点:

从上图很明显可以看出List集合和Set集合均继承自Collection接口,但是Map是独立的,并且他们都是import java.util.List/Set/Map;

1.List (L是重点,圈起来会考)

从文档中我们可以看到List是有序的集合也称为序列(L)。

这里给大家抽象个快速牢记的办法:

List集合有序重复,上体育课的时候老师是不是会让我们排好队。来晚的童鞋也要排好队,我们有好多个同学不是一个是不是。童鞋们是不是要有序的排成2队男女各一队。然后老师吹着哨子喊道:立(L)正!稍(S)息。脑子里有没有画面?下次想到List就会自然而然就会想到上PE课。

so ,List下常用的实现类:ArrayList,LinkedList,Vector 是不是都有是有序可重复的? OK 下面我们来具体了解ArrayList。

1.1、ArrayList

ArrayList的底层数据结构是数组,查询快,增删慢。 

可以把ArrayList想象成体育委员,老师查人数的时候他不可能每个同学都记住名字是不是?但是体育委员都认识你们呀,瞄一眼就知道哪个同学没来是不是?如果老师要查点人数,是不是要一个一个点名再对号。有时候人没点完就下课了。哈哈
至于线程不安全,如上图,ArrayList是非同步的,自然不安全。效率高仅限查询效率。

ArrayList总结:

优点: 底层数据结构是数组,查询快,增删慢。
缺点: 线程不安全,效率高。

1.2、LinkedList

 

同样:LinkedList也是非同步的,自然也不安全。效率高仅限增删操作。

举个栗子:围绕操场跑步的时候都是体育委员在一侧领着大家跑操场的,如果老师让他归队,不管他站到谁在后面,他后面的同学是不是都要后移一个位置?但是如果他直接去最后一个同学那是不是大家都不要换位置了。OK

LinkedList总结:

优点: 底层数据结构是链表(双向链表),查询慢,增删快。
缺点: 线程不安全,效率高

 

1.3、Vector

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值