集合

集合:对数据结构和算法进行了封装

  •   一个装东西的容器
    
  • 集合的根;Collection
  • Collection的两个子接口:List(列表)Set(集)
  • Map(映射):主要放的Key-Value的数据
  • List集合的特点:
  •     1.List集合中的元素是有顺序的
    
  •     2.List集合这种弄允许存放重复元素
    
  •     3.List集合中允许存放null元素
    
  •     4.List集合中可以通过索引访问元素
    
  • ArrayList底层给予数组接口,查询快,操作数据慢。
  • LinkedList低层级与双向链表结构,操作数据相对快,查询慢
  • Vector和ArrayList底层一样,但是区别在于Vector是线程安全的,数据的准确性高,
    *但整体性能较差
  • Set(集):
  •  HashSet底层:数组结构加双向链表
    
  •  TreeSet
    

TreeSet同样是Ste接口的实现类

  • 特点:
  • 1.集合中间的元素在存放时它是有序的,但是要做到有序,需要存放的元素都需要实现一个接口
    
  •   Comparable接口,并重写comparTo()
    
  • 2.由于元素需要排序,元素不能放null
    
  • 3.底层原理:红黑二叉树(在二叉树中,比较元素时,小的在左边,大的在右边。如果是相等的,直接覆盖它的值。)
    
  •            去重原理:利用TreeMap的key的去重原理,来完成集合去重
    
  •  TreMap的去重原理:数据和二叉树中的元素进行比较来实现,如果数据比二叉树的节点数据小,那么数据就继续和下一
    
  •  个左边的子节点进行比较,反之和右边的子节点进行比较,如果相同就直接覆盖值,然后退出,不相同就继续按照上述
    
  •  原理进行比较,一直比到自戒掉为叶子节点为止。
    

HashSet的特点:

  •      1.去重
    
  •      2.遍历没有顺序可言
    
  •      3.可以放null元素
    
  • HashSet 去重的原理:它是用的HashMap中的key来存储数据
  •                 通过HashMap的去重原理,完成数据的去重
    
  • HashMap的key的去重原理
  • 1,获取key的hash值,然后从HashMap的Hash表中取查询是否存放相同的hash值
  • 1.1:如果hash之不存在,那么直接在Hash表中添加新的数据
  • 1.2:如果hash值已经存在,那么就继续通过equals()比较key是否与已经存在的key的
  •     value相同,如果不同那么财通单项链表追加数据,如果相同则忽略key的覆盖
    

*/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值