2022-08-07 第十小组 石晓荟

集合

知识点

一:.Collection

1.List

  ArrayList、LinekdList :有序,可重复,有索引。
  有序:存储和取出的元素顺序一致
  有索引:可以通过索引操作元素
  可重复:存储的元素可以重复
  List 集合遍历方式:
  迭代器 
  增强for循环
  Lambda表达式
  for循环(因为List集合存在索引)
  ArrayList集合底层原理:
  ArrayList底层是基于数组实现的:根据索引定位元素快,增删需要做元素的移位 
  操作。
  第一次创建集合并添加第一个元素的时候,在底层创建一个默认长度为10的数组。
  LinkedList的集合底层原理:
  底层数据结构是双链表,查询慢,首尾操作的速度是极快的,所以多了很多首尾操 
  作的特有API

List集合特有方法:

LinkedList集合的特有功能:

2.Set

Set系列集合特点:
无序:存取顺序不一致
不重复:可以去除重复
无索引:没有带索引的方法,所以不能使用普通for循环遍历,也不能通过索引来获取元素。
Set集合实现类特点:
HashSet : 无序、不重复、无索引。
LinkedHashSet:有序、不重复、无索引。
TreeSet:排序、不重复、无索引。
HashSet底层原理:
HashSet集合底层采取哈希表存储的数据。
哈希表是一种对于增删改查数据性能都较好的结构。
Set集合去重复:
重写对象的hashCode和equals方法。
LinkedHashSet概述和特点:
有序、不重复、无索引。
有序:指的是保证存储和取出的元素顺序一致
原理:底层数据结构是依然哈希表,只是每个元素又额外的多了一个双链表的机制记录存储的顺序。
TreeSet概述和特点:
不重复、无索引、可排序
可排序:按照元素的大小默认升序(有小到大)排序。
TreeSet集合底层是基于红黑树的数据结构实现排序的,增删改查性能都较好。
注意:TreeSet集合是一定要排序的,可以将元素按照指定的规则进行排序。
TreeSet集合默认的规则:
对于数值类型:Integer , Double,官方默认按照大小进行升序排序。
对于字符串类型:默认按照首字符的编号升序排序。
对于自定义类型如Student对象,TreeSet无法直接排序
TreeSet集合存储对象的的时候有2种方式可以设计自定义比较规则:
方式一
 让自定义的类(如学生类)实现Comparable接口重写里面的compareTo方法来定制比较规则。
方式二
TreeSet集合有参数构造器,可以设置Comparator接口对应的比较器对象,来定制比较规则。
两种方式中,关于返回值的规则:
如果认为第一个元素大于第二个元素返回正整数即可。
如果认为第一个元素小于第二个元素返回负整数即可。
如果认为第一个元素等于第二个元素返回0即可,此时Treeset集合只会保留一个元素,认为两者重复。
posted @   Romantic_SXH  阅读(28)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示