Collectionj集合List和Set的概述

在这里插入图片描述
List接口

List的两个实现类----------------------ArrayList和LinkedList
List的特点 有序 有索引 可存储重复元素
List接口的特有方法 (带索引的方法)
add(int index,E) 将元素插入到指定索引

       remov(int index)   删除指定索引元素,返回删除的元素

       set(int index, E)  修改指定索引元素,返回被修改前的元素

数据的存储结构 栈:先进后出 队列:先进先出 数组:查找快,增删慢 链表:增删快,查找慢
ArrayList 本质是可变数组 线程不安全(不同步,运行速度快)

         添加之前,进行扩充判断,默认长度为10

LinkedList 本质是单向链表 线程不安全(不同步,运行速度快)

      addFirst(E) 添加到链表的开头                 setFirst(E)                removeFirst(E)

     addLast(E) 添加到链表的结尾                  setLast(E)                 removeLast(E)

Set接口
Set接口的实现类 HashSet
Set接口的特点: 无序 无索引 不可存储重复元素
HashSet 底层是Map (哈希表) 线程不安全,(不同步,运行速度快)
哈希表的数据结构(数组链表的结合)
数组的默认长度是16,加载因子(长度的百分比–》长度0.75)是0.75 当达到 长度0.75 进行扩容(又叫数据的再哈希)影响性能, 长度和加载因子可更改,不建议更改
对象的哈希值 hashCode() 本质就是一个整数
哈希表的存储原理 比较对象的哈希值,对象equals() 集合在容器内找相同的哈希值,没有就直接存到数组中,有的话,用要存的对象调用equals(),结果为true时,集合判定元素重复,不保存;结果为false,集合判定元素没有重复,添加到链表中
LinkedHashSet 继承自HashSet 有序的set集合 线程不安全,(不同步,运行速度快)
判断集合元素唯一的原理 ArrayList的contains方法(本质是equals方法) HashSet的add和contains方法(本质是判断hashCode和equals方法)
8种基本类型和String都重写了hashCode和equals 为了保证哈希表存储的唯一

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值