Collection集合总结

Collection集合总结

1.Collection集合

1.1 集合体系结构

  1. Collection集合概述
    1. 是单例集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素
    2. JDK 不提供此接口的任何直接实现,它提供更具体的子接口(如Set和List)实现
      在这里插入图片描述

1.2 集合的常用方法

在这里插入图片描述

1.3 迭代器

Iterator iterator():返回此集合中元素的迭代器,通过集合的iterator()方法得到
迭代器是通过集合的iterator()方法得到的,所以我们说它是依赖于集合而存在的
IDEA快捷键:iter

*Iterator<E> iterator()*返回此集合中元素的迭代器,通过集合iterator()方法得到 
Iterator<String> it = c.iterator(); 
*while循环改进元素的判断和获取 
while (it.hasNext()) 
{ String s = it.next(); 
  System.out.println(s); 
}

1.4 集合使用步骤图解

在这里插入图片描述

new出来的对象 肯定是放在堆内存里。
list这个变量是放在栈内存里面
new出来的东西是在堆里面划分的空间

2.List集合

2.1 List集合概述

  1. 概念:
    • 有序集合(也称为序列),用户可以精确控制列表中每个元素的插入位置。用户可以通过整数索引访问元素,并搜索列表中的元素
    • 与Set集合不同,列表通常允许重复的元素
  2. 特点
    1. 有索引
    2. 可以存储重复元素
    3. 元素存取有序

2.2 方法

在这里插入图片描述

2.3 List迭代器ListIterator

在这里插入图片描述

2.4 增强for循环

for(元素数据类型 变量名 : 数组/集合对象名)
 { 循环体; }

实现以及内部原理:
在这里插入图片描述

2.5 ArrayList LinkedList

2.5.1 ArrayList

ArrayList集合
底层是数组结构实现,查询快、增删慢

2.5.2 LinkedList

LinkedList集合
底层是链表结构实现,查询慢、增删快

LinkedList 方法
在这里插入图片描述

4. Set集合

4.1 Set集合概述

  1. 特点:
    1. 元素存取无序
    2. 没有索引、只能通过迭代器或增强for循环遍历
    3. 不能存储重复元素
  2. Hash值

    哈希值是对象所有或者指定内容根据一特定算法得到的值,java对象中继承自object类的equals方法就是默认比较哈希值的,两个不同地址的对象,如果哈希值相同,使用默认比较方法是会被认为相等,但是一个对象变化并不会引起另一个的反应。

4.2 HashSet

  1. HashSet特点
  1. 底层数据结构是哈希表
  2. 对集合的迭代顺序不作任何保证,也就是说不保证存储和取出的元素顺序一致
  3. 没有带索引的方法,所以不能使用普通for循环遍历
  4. 由于是Set集合,所以是不包含重复元素的集合
  1. 唯一性分析
  1. 根据对象的哈希值计算存储位置
    如果当前位置没有元素则直接存入
    如果当前位置有元素存在,则进入第二步
  2. 当前元素的元素和已经存在的元素比较哈希值
    如果哈希值不同,则将当前元素进行存储
    如果哈希值相同,则进入第三步
  3. 通过equals()方法比较两个元素的内容
    如果内容不相同,则将当前元素进行存储
    如果内容相同,则不存储当前元素
    在这里插入图片描述
  1. 哈西表数据结构
    在这里插入图片描述

4.3 LinkedHashSet

哈希表和链表实现的Set接口,具有可预测的迭代次序
由链表保证元素有序,也就是说元素的存储和取出顺序是一致的
由哈希表保证元素唯一,也就是说没有重复的元素

4.4 TreeSet

  1. 特点

TreeSet集合概述:
1.元素有序,可以按照一定的规则进行排序,具体排序方式取决于构造方法
2.TreeSet():根据其元素的自然排序进行排序
3.TreeSet(Comparator comparator) :根据指定的比较器进行排序
没有带索引的方法,所以不能使用普通for循环遍历
由于是Set集合,所以不包含重复元素的集合

  1. 自然排序Comparable接口
  • 实现步骤
    1. 用TreeSet集合存储自定义对象,无参构造方法使用的是自然排序对元素进行排序的
    2. 自然排序,就是让元素所属的类实现Comparable接口,重写compareTo(T o)方法
    3. 重写方法时,一定要注意排序规则必须按照要求的主要条件和次要条件来写
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值