Java集合分类及优缺点

Collection的分类
———List
特点:
有序:存储和取出位置一致
不唯一:包含重复元素
分类
1. ArrayList:底层是数组,查询快,增删慢,线程不安全,效率高
2. Vector:底层是数组,查询快,增删慢,线程安全,效率低
3. LinkedList:底层是链表,查询慢,增删快,线程不安全,效率高

     List遍历对应的遍历方式有三种
     1.通过迭代器
     2. 通过一般for
     3. 通过增强for:强烈推荐此方法,简单

———Set
特点:
唯一:不包含重复元素
无序:存储和取出的位置不一致,不是数字 意义上的从大到小或从小到大的排序
分类:
1.HashSet
底层是哈希表,而哈希表又依赖两个方法hashcode()和equals()
底层具体实现逻辑:
判定哈希值是否相同
相同:通过equals方法进一步判断
返回True,则不处理
返回false,则添加至集合
不同:直接将元素添加至集合
2.TreeSet
底层是红黑树(可以保持平衡的二叉树)
特点:有序,唯一
排序的两种方式
1. 自然顺序:通过让元素所属的类继承接口Comparable的compareto()方法,进行具体的大小比对操作
2. 比较器排序:主要是实现Compator接口的Compare()方法,一般通过匿名内部类来操作,便于维护
遍历方式:
1.通过迭代器
2.通过增强for

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值