List 与 Set 的区别(小小总结,ArrayList和HashSet)

List 与 Set 的区别

List

  1. 有序
  2. 可重复
  3. 数组或链表存储

Set

  1. 无序
  2. 不可重复
  3. 使用map存储
一、ArrayList
  1. 通过数组的方式进行存储:查询快,增删慢的特点,但是他的效率高

  2. 初始化过程中若知道数组的大约范围,建议制定长度;若不指定长度,默认初始化大小为10;

  3. ArrayList两个属性

    • size:可以理解为数组长度
    • elementData:可以理解为容量大小
  4. 扩容问题:每次使用add方法时,会触发扩容方法,当容量不够时候,进行扩容

    扩容时步骤:

    ​ 1:将size+1,和现在的elementData长度比较比较

    ​ 2:若小于现有容量,则不扩容;

    ​ 3:若大于现有容量,则

    ​ 3 .1:备份原数组;

    ​ 3.2:扩容为原来大小的1.5倍

    ​ 3.2:通过Arrays.copyOf(elementData, newCapacity)方法返回扩容后的数据。

  5. 删除(remove)
  6. 迭代

    • 方式1:Iterator迭代器
    • 方式2:foreach
二、HashSet
  1. HashSet 内部是一个map,通过HashMap来保证数据的唯一性,因此是非线程安全和无序的
  2. 数据时没有get方法,只能通过迭代的方式获取数据map中所有的key
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值