Java基础:Collection的分支——Set集合及其子类

本文介绍了Java中Collection接口的子接口Set,特别关注HashSet和LinkedHashSet。Set接口不允许存储重复元素且无存储顺序,其中HashSet以哈希表为基础,提供快速查询;LinkedHashSet在HashSet基础上增加链表结构,保持存取顺序。
摘要由CSDN通过智能技术生成
  • Collection接口: 单列集合最顶层的接口,单列集合中的共性内容,所有单列集合都可以使用。
    • List接口 / 集合: 有存储顺序,允许存储重复元素。
      • ArrayList类(重点): 底层是数组实现的, 查找快, 增删慢。由于是数组实现,在增和删的时候会牵扯到数组增容,以及拷贝元素,所以慢。而数组是可以直接按索引查找, 所以查找时较快,一个普通的for循环可以遍历。
      • LinkedList类: 底层是链表实现的, 增删快, 查找慢。由于链表实现, 增加时只要让前一个元素记住自己就可以, 删除时让前一个元素记住后一个元素, 后一个元素记住前一个元素. 这样的增删效率较高但由于没有索引,查询时需要一个一个的遍历, 所以查询效率较低。
      • Vector类(了解): 和ArrayList原理相同,但线程安全, 效率略低,和ArrayList实现方式相同, 但考虑了线程安全问题, 所以效率略低 。
    • Set接口 / 集合: 无存储顺序, 不允许存储重复元素,无索引。
      • HashSet类 (重点):底层是哈希表(+红黑树)实现的,查询快。
      • TreeSet类(了解):底层是二叉树实现,一般用于排序。
      • LinkedHashSet类:可以保证存取顺序,底层是哈希表+链表实现的。注意它是HashSet类的子类。

Set集合

HashSet集合

具有Set类公共特点(无存储顺序, 不允许存储重复元素,无索引),HashSet类底层是哈希表结构,查询速度非常快。

哈希表=数组+链表/红黑树

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

public class Demo {
   
    public static 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值