Java进阶——集合

目录

一、集合的概念

二、java.lang.Iterable

三、java.util.Collection

1.队列(Queue)

2.Deque(双端队列)

3.Queue和Deque方法对比

四、set

五、List

六、Vector

七、Stack


一、集合的概念

java 中针对数组的缺陷,提供了一种比数组灵活、使用方便的接口和类,它们位于 java.util 包,称为集合框架。

二、java.lang.Iterable

Iterable 接口,凡是实现了此接口的对象都能成为 for-each-loop 的目标。

for(数据类型 变量名 : 循环对象){ 
​
//循环体 
​
}
​
//变量是循环对对象的值,不是索引 

iterator() 方法返回一个类型的迭代器。

它的子类有很多,我们现在主要研究 java.util.Collection

三、java.util.Collection

Collection 是集合层次结构中的根接口。集合表示一组对象,对象称为集合的元素。有些集合允许重复元素,有些则不允许。 有些是有序的,有些是无序的

(不保证顺序)

public interface Collection<E> 
​
extends Iterable<E> 

从类的声明我们可以看到, Collection 接口继承了 Iterable 接口。也就意味着,实现了Collection 接口的类也间接实现了 Iterable 接口,也就是说它们都能

作为 for-each-loop 的循环对象。

方法名返回值描述
add(E e)boolean添加元素
addAll(Collection<?extends E> c)boolean将集合c中的所有元素添加此集合中
clear()void清除所有元素
contains(Object o)boolean集合中是否包含此元素
containsAll(Collection<?>c)boolean集合中是否包含c集合中的所有元素
isEmpty()boolean集合中是否有元素,如果没有返回true
iterator()Iterator<E>继承自Iterable接口,返回集合的迭代器
remove(Object o)boolean删除集合中的某个元素
removeAll(Collection<?>c)boolean删除集合c中包含的所有元素
size()int返回此集合中的元素数
toArray()Object[]返回一个包含此集合中所有元素的数组

1.队列(Queue)

public interface Queue<E> 
​
extends Collection<E> 

设计用于在处理之前保留元素的集合。 除了基本的 Collection 操作之外,队列还提供额

外的插入,提取和检查操作。

不可以存 null

2.Deque(双端队列)

public interface Deque<E> 
​
extends Queue<E> 

继承了 Queue ,支持两端(首尾)元素插入和移除的线性集合。

3.Queue和Deque方法对比

四、set

public interface Set<E> 
​
extends Collection<E>

不包含重复元素的集合, 可以存 null 。

抽象方法大多是继承自 Collection 的,所以不做单独说明。

of 方法和 copyOf ,都是 static 方法返回一个不可修改的 Set 集合。

不可修改 Set 集合

它们是不可修改的。不能添加或删除元素。

不允许 null 元素。尝试使用 null 元素创建它们会导致 NullPointerException

常用子类, HashSet 和 TreeSet

五、List

有序集合(也称为序列 )。 该集合用户可以精确控制列表中每个元素的插入位置。 用户

可以通过整数索引(列表中的位置)访问元素,并搜索列表中的元素

List 通常允许重复的元素、允许 null 元素

主要抽象方法

 

 

六、Vector

Vector 类实现了可扩展的对象数组。 像数组一样,它包含可以使用整数索引访问的组件。 但是, Vector的大小可以变化。

Vector 是同步的,是线程安全的。

Vector 继承了 AbstractList 类,实现了 List 接口

内部是使用数组存储数据,也就是说在内存中开辟一个连续的空间

默认大小是10,当容量不足时,默认扩容方式是按倍增长( capacity * 2)

可以自定义默认容量以及每次扩展多少容量子类,

七、Stack

Stack 类代表后进先出(LIFO)堆栈的对象, Stack 继承自 Vector 所以它有所有 Vector 中的方法。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值