JAVA系列教程:集合

一.分类

集合父类是Collection, 子类主要包括List, Set和Map三类。

二.List介绍

List: 主要是用来存储一系列相同类型的数据,包括ArrayList, LinkedList, Vector 

ArrayList: 线程不安全,内部通过数组实现,访问和查找速度快,指定位置增加和删除数据慢。

LinkedList:线程不安全,内部通过链表实现,访问和查找速度慢,指定位置增加和删除数据快。

Vector: 跟ArrayList一样,内部通过数组实现。但他是属于线程安全,内部所有方法都通过synchronize加锁,速度相对ArrayList会慢

三.Set介绍

Set:一个不包含重复元素的集合,主要包括HashSet, TreeSet和EnumSet

HashSet: 线程不安全,内部通过Hashmap来实现,迭代时是无序的

TreeSet: 线程不安全,内部通过TreeMap来实现,迭代是有序的。

四.Map介绍

Map:主要用来存储键值对元素,包括HashMap和TreeMap

1. HashMap

    线程不安全,根据Key的hash值计算相应的Entry位置,对于hash相同的key,将通过一个链表进行动态扩展。同时对于hashmap的迭代是无序的。

2. TreeMap

   线程不安全,TreeMap会根据Key进行排序,迭代时有序的。支持两种排序方式。

  a)自然排序,对于自然排序,Key必须实现了Comparable接口,同时实现c

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值