ArrayList和HashSet之间的区别

ArrayList
特点:是有序(按照添加顺序来算的),不唯一
底层是基于Object类型的数组

一次性添加一个元素:list.add();

一个集合中是否包含某个元素:list.contains(元素);只不过要遵循equals()方法

删除集合中的元素:分为两种,list.remove(下标) list.remove(元素);
当list.remove(元素);的时候要遵循equals方法

当遍历一个集合时有三种方法:
for+下标
for+each
迭代器

ArrayList的构造方法:
参数:int类型 指的是空间大小
默认参数 默认分配10个空间大小,并且如果超过容量则扩大容量
设定参数 根据指定的参数来分配空间大小,如果超出容量则扩大容量
参数扩容的版本:JDK6.0之前 x*3/2+1 JDK7.0之后 x+(x>>1)

HashSet
特点:无序,唯一
底层基于哈希表

添加一个元素
set.add(元素);
因为HashSet的唯一性,所以需要遵循hashCode() == equals()方法

判断一个集合中是否包含一个元素
set.contains(元素);
因为HashSet的唯一性,所以需要遵循hashCode() == equals()方法

删除一个元素
因为hashCode是一个无序集合,所以没有下标,与下标有关的方法都不能使用
set.remove(元素);
需要遵循 hashCode() == equals()方法

遍历一个set集合的方法
for+each
迭代器

HashSet的构造方法
参数:int 分组组数 Float 加载因子
默认参数 默认分配16个组,加载因子0.75F,每个组分配12个空间
组数一般都是按照2的n次方来计算
设定参数 分配特定的分组数,特定的加载因子,阈值=分组数 *加载因子,阈值就是每个组的空间大小,当一个组的元素个数超出一个组的空间大小时,就要扩容,扩容方式就是按照2倍扩容

如果第二次输入的元素和第一次输入的元素相同时,则删除第二次输入的元素

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值