Java_集合_单列集合Collection

第一章.Collection接口

Collection<E> 集合名 = new 实现类对象<E>()

常用方法:

boolean add(E e) : 将给定的元素添加到当前集合中(我们一般调add时,不用boolean接收,因为add一定会成功)
boolean addAll(Collection<? extends E> c) :将另一个集合元素添加到当前集合中 (集合合并)

void clear() :清除集合中所有的元素

boolean contains(Object o) :判断当前集合中是否包含指定的元素

boolean isEmpty() : 判断当前集合中是否有元素->判断集合是否为空

boolean remove(Object o) :将指定的元素从集合中删除

int size() :返回集合中的元素个数。

Object[] toArray(): 把集合中的元素,存储到数组中

第二章.List集合&实现类

List接口是Collection的子接口,实现类:

ArrayList LinkedList Vector

2.1.ArrayList集合

常用方法:

boolean add(E e) -> 将元素添加到集合中->尾部(add方法一定能添加成功的,所以我们不用 boolean接收返回值)

void add(int index, E element) ->在指定索引位置上添加元素

boolean remove(Object o) ->删除指定的元素,删除成功为true,失败为false

E remove(int index) -> 删除指定索引位置上的元素,返回的是被删除的那个元素

E set(int index, E element) -> 将指定索引位置上的元素,修改成后面的element元素

E get(int index) -> 根据索引获取元素

int size() -> 获取集合元素个数

ArrayList():构造一个初始容量为 10 的空列表

ArrayList(int initialCapacity):构造一个具有指定初始容量的空列表

注意:

a.不是说一new ArrayList.底层就会创建一个长度为10的空数组,而是第一次add的时候才会创建一个长度为10的数组

b.如果超出了数组的容量,会自动扩容 -> 利用Arrays.copyOf扩容

c.扩容多少倍? 1.5倍

2.2.LinkedList集合

LinkedList底层成员

transient int size = 0; 元素个数

transient Node<E> first; 第一个节点对象

transient Node<E> last; 最后一个节点对象

2.3.Vector集合

Vector() 构造一个空向量,使其内部数据数组的大小为 10,其标准容量增量(扩容多少)为零

如果是空参创建对象,默认容量是2倍

Vector(int initialCapacity, int capacityIncrement) 使用指定的初始容量和容量增量构造一个空的向量

initialCapacity:指定数组初始容量

capacityIncrement:容量增量

如果指定了容量增量,扩容的话就按照指定的容量增量扩容

第三章.Set集合

Set接口是Collection的子接口

实现类:HashSet LinkedHashSet TreeSet

特点:

a.Set集合中的方法并没有对Collection进行功能上的扩充

b.Set接口下的实现类都是依靠map实现的

3.1.HashSet集合

是Set接口的实现类

方法:和Collection一样

HashSet的存储去重复的过程:先比较元素的哈希值(重写hashCode方法,比较对象内容的哈希值),再比较内容(重写equals方法) 如果不重写这两个方法比较的是对象的哈希值

先比较元素哈希值,如果哈希值不一样,直接进行存储

如果哈希值一样,需要再比较内容,

a.如果哈希值一样,内容不一样(哈希冲突),存

b.如果哈希值一样,内容也一样,去重复

HashSet存储自定义对象时想要去重复,此对象现需要重写hashCode和equals方法;先比较对象内容的哈希值,再比较对象的内容

3.2.LinkedHashSet

是HashSet的子类

方法:和HashSet一样

3.3.TreeSet

是Set接口的实现类

方法:和HashSet一样

构造:

TreeSet() 按照自然顺序排序(ASCII码)

TreeSet(Comparator<? super E> comparator) ->按照指定顺序排序

相关推荐
阿里嘎多学长3 分钟前
2026-04-30 GitHub 热点项目精选
开发语言·程序员·github·代码托管
abcnull1 小时前
用javaparser做精准测试
java·ast·静态代码分析·精准测试·javaparser
叶小鸡2 小时前
Java 篇-项目实战-苍穹外卖-笔记汇总
java·开发语言·笔记
AI人工智能+电脑小能手2 小时前
【大白话说Java面试题】【Java基础篇】第22题:HashMap 和 HashSet 有哪些区别
java·开发语言·哈希算法·散列表·hash
juniperhan2 小时前
Flink 系列第21篇:Flink SQL 函数与 UDF 全解读:类型推导、开发要点与 Module 扩展
java·大数据·数据仓库·分布式·sql·flink
ID_180079054732 小时前
Python 实现亚马逊商品详情 API 数据准确性校验(极简可用 + JSON 参考)
java·python·json
c++之路2 小时前
C++23概述
java·c++·c++23
时空系2 小时前
第10篇:继承扩展——面向对象编程进阶 python中文编程
开发语言·python·ai编程
专注API从业者3 小时前
Open Claw 京东商品监控选品实战:一键抓取、实时监控、高效选品
java·服务器·数据库
CHANG_THE_WORLD4 小时前
python 批量终止进程exe
开发语言·python