JAVA之Collection详解

1 篇文章 0 订阅
1 篇文章 0 订阅

1、子集结构

集合的顶层接口,不能被实例化
根接口Collection
 常用子接口
  1. List
   实现类:ArrayList、Vector、LinkedList
  2. Set
   实现类:HashSet、TreeSet
   在这里插入图片描述

2、List

list中存放的数据是有序的,可重复的

1、LinkedList实现类:
注:

   A、LinkedList底层使用双向链表实现,因此对于数据的增删操作效率比ArrayList高
   
   B、对数据的查询需要操作指针,所以查询操作效率较低;

   C、LinkedList不是线程安全的;

   D、数据可重复;

2、ArrayList实现类:

底层是用数组实现的,并且默认长度(容量)为10:

   A、ArrayList底层是用数组实现的,通过索引下标可以快速的查到数据,所以它对
   数据的查询操作效率高的多;
   
   B、ArrayList不是线程安全的。

   C、数据可重复性

3、vector:

注:

   A、vector是线程安全的;
   
   B、数据可重复

   C、通过数组来实现的,但是效率一般比ArrayList低,如果不考虑线程安全问题,
   一般使用ArrayList

3、Set

Set去除重复元素,无序的,重复元素会覆盖掉。

1、HashSet实现类:
 底层数据是哈希表, 通过两个方法hashCode()和equals()保证元素的唯一性,方法自动生成,子类LinkedHashSet底层数据结构是链表和哈希表,由链表保证元素有序,由哈希表保证元素唯一。
a) 不保证set的迭代顺序
b) 当存储对象时需要重写equals()和hashCode()方法

注:

   A、HashSet不是线程安全的;
   B、HashSet允许有空值;
   C、HashSet中不允许有相同值得存在;

2、TreeSet类
底层数据是红黑二叉树; 排序方式:自然排序、比较器排序, 通过比较返回值是否为0来保证元素的唯一性。

 a) 能够保证元素唯一性(根据返回值是否是0来决定的),并且按照某种规则排序
    i. 自然排序,无参构造方法(元素具备比较性)
    	按照compareTo()方法排序,让需要比较的元素所属的类实现自然排序接
    	口Comparable,并重写compareTo()方法
	ii. 1. 让集合的构造方法接收一个比较器接口的子类对象(compareator)(此处
	的Comparator为接口,需要写一个接口实现类,在实现类中重写compare()方法,
	并在这里创建接口实现类的对象,可以用匿名内部类来创建实现类对象)
 b) 底层是自平衡二叉树结构
 c)当使用无参构造方法,也就是自然排序,需要根据要求重写compareTo()方法,
 这个不能自动生成

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值