Java中的集合如何删除元素 java集合remove_java list remove


为什么我们要使用集合?

自动拓容的容器

Collection集合

1.Collection简介

A. Java集合框架提供了一套性能优良、使用方便的接口和类,它们位于java.util包中,其中Collection表示集合的顶层接口,它表示一种容器,容器中可以存储一组对象,存储的对象称为集合或者容器的元素(item)。注意集合中只能存储引用数据类型。

B. Collection根据存储数据的特征可以分为:

List:可重复的,有序的数据

Set:唯一的,无序的数据

Collection接口中定义了增删改查的方法用于操作容器。

2.Collection的常用方法


public


注意:Collection 集合中可以存储不同数据类型的引用数据。但实际开发过程中建议开发者存同一类型。

3.Collection遍历

Collection接口继承Iterable接口,表示Collection实现类具有可遍历的能力。Iterable接口定义了一个iterator方法用于返回集合的迭代器,该迭代器是一个Iterator接口,定义了hasNext()用于判断集合是否有下一个元素,next()用于取出下一个元素。


Java中的集合如何删除元素 java集合remove_接口--四则计算器 java_02


public


4.Collection的子接口

Collection是集合框架的顶层接口,只提供对集合的抽象操作(增、删),如果要具体对容器进行精确性的操作,需要其子接口。Collection有两个子接口

List接口,表示序列,其存储的元素是有序的,可重复的

Set 接口,表示数学概念上集合,其存储的元素是无序的、唯一的。

List接口

有序的集合(也称为序列)。可以对列表中每个元素的插入位置进行精确地控制。也可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。

1.List接口的常用方法


public


2.List接口的遍历

List 继承Collection,并继承Iterable接口,具备遍历的能力。List实现类实现了iterator方法().List接口还提供了listIterator()方法,用于获取一个序列迭代器。序列迭代器实现了ListIterator接口,该接口允许开发者以任一方向遍历集合。

ListIterator 继承Iterator接口,增了hasPrevious()和previous()用于逆向遍历集合。


public


数据结构

根据数据的存储结构,可以分为线性表,链表,栈,队列等。

线性表

根据数据存储的不同,线性表可以分为数组,链表。
数组的物理空间和逻辑空间一致


Java中的集合如何删除元素 java集合remove_java list remove_03


数组和链表比较

数组:查找速度快,但插入和删除需要移动元素,效率低
链表:查询效率低(必须从头开始查),插入和删除效率高。


Java中的集合如何删除元素 java集合remove_接口--四则计算器 java_04


栈数据结构操作数据时只有一个口(即是入口又是出口),数据先进后出。


Java中的集合如何删除元素 java集合remove_List_05


队列

队列数据结构操作数据时有两个口,一个是入口,一个是出口,数据是先进先出。

ArrayList/Vector

ArrayList 底层数据结构是数组,是List接口的容量大小可变的数组。

拓展规则:当向ArrayList中添加元素时,默认空间能存储10个元素,当容量不足时,按照

oldCapacity + oldCapacity / 2 原则拓容。

ArrayList是线程不安全的,不保证同步,效率高。

Vector 底层数据结构数组,是List接口大小可变数组的实现。

拓展原则: 当向Vector中添加元素时,默认空间能存储10个元素,当容量不足时,分两种情况

[1] 如果提供增长因子:按照增长因子拓展

[2] 没有提供增长因子:按照oldCapacity

Vector是线程安全的,保证同步,效率低。jdk1.0。

未来如果使用Vector时,一定要用List接口去使用它,不要有特有方法xxxElement()。

LinkedList

LinkedList 底层数据结构是链表,是List接口的链表实现。
LinkedList还实现了栈形式来操作


public


可以单向队列(Queue)接口操作LinkedList


public


LinkedList还实现双向队列(Deque)接口(C)


public


Java中的集合如何删除元素 java集合remove_java list remove_06