List介绍

简介: 本篇文章主要介绍Iterable、Collection、List 的常见方法签名以及含义,三者的关系在下边介绍

Iterable、Collection、List


1.关系图


在集合框架中,三者的关系如下所示,三者都是接口


微信图片_20230111001846.png

2.Iterable


Iterable是一个具有迭代功能的泛型接口,表示实现该接口的类是可以逐个元素进行遍历的。


public interface Iterable<T> {
    Iterator<T> iterator();
//抽象类中的抽象方法
    default void forEach(Consumer<? super T> action) {
        Objects.requireNonNull(action);
        for (T t : this) {
            action.accept(t);
        }
    }
    default Spliterator<T> spliterator() {
        return Spliterators.spliteratorUnknownSize(iterator(), 0);
    }
}


其内部实现就是通过foreach循环或者调用 iterator() 方法来实现遍历。


3.Collection


Collection是继承于Iterable的泛型接口,用来实现集合的接口。


public interface Collection<E> extends Iterable<E>{};

常见方法签名:


方法  作用
add(Object o) 集合中添加一个元素
addAll(Collection c) 向集合中添加集合c的所有元素
clear() 清除所有元素
contains(Object o) 判断集合是否包含该元素
containsAll(collection c) 判断集合是否包含集合c的元素
isEmpty() 判断集合是否为空
iteration() 返回iteration对象,用于遍历集合中的所有元素
remove(Object o) 删除某个指定元素
removeAll(collection c) 删除集合c中所有元素
retainAll(Collection c) 仅保留集合c中出现的元素
int size() 返回集合中元素的个数
Object[] toArray() 把集合转换为一个数组


4.List


List就是一个线性表,即n个具有相同类型元素的有限序列,在该序列上可以执行增删改查以及变量等操作。


注意:

List是个接口,并不能直接用来实例化。

如果要使用,必须去实例化List的实现类。在集合框架中,ArrayList和LinkedList都实现了List接口。


常见方法标签名:


方法  作用
boolean add(E e) 尾插 e
void add(int index, E element) 将 e 插入到 index 位置
boolean addAll(Collection<? extends E> c) 尾插 c 中的元素
E remove(int index) 删除 index 位置元素
boolean remove(Object o) 删除遇到的第一个 o
E get(int index) 获取下标 index 位置元素
E set(int index, E element) 将下标 index 位置元素设置为 element
void clear() 清空
boolean contains(Object o) 判断 o 是否在线性表中
int indexOf(Object o) 返回第一个 o 所在下标
int lastIndexOf(Object o) 返回最后一个 o 的下标
List subList(int fromIndex, int toIndex) 截取部分 list



相关文章
|
2月前
|
存储 编译器 容器
list从0到1的突破
list从0到1的突破
19 0
|
4月前
|
存储 C++ 容器
【C++】list的认识与使用
【C++】list的认识与使用
|
5月前
|
存储 Java C++
【c++】list详细讲解
【c++】list详细讲解
64 5
|
5月前
|
算法 搜索推荐 C++
【C++】list的使用(下)
`C++` 中 `std::list` 的 `merge()`、`sort()` 和 `reverse()` 操作: - `merge(x)` 和 `merge(x, comp)`: 合并两个已排序的`list`,将`x`的元素按顺序插入当前`list`,`x`清空。比较可自定义。 - `sort()` 和 `sort(comp)`: 对`list`元素排序,保持等价元素相对顺序。内置排序基于稳定排序算法,速度较慢。 -reverse(): 反转`list`中元素的顺序。 这些操作不涉及元素构造/销毁,直接移动元素。注意,`sort()`不适合`std::list`,因链表结构不利于快速排序
|
5月前
|
编译器 C++ 容器
【C++】list的使用(上)
迭代器在STL中统一了访问接口,如`list`的`begin()`和`end()`。示例展示了如何使用正向和反向迭代器遍历`list`。注意`list`的迭代器不支持加减操作,只能用`++`和`--`。容器的`empty()`和`size()`用于检查状态和获取元素数。`front()`和`back()`访问首尾元素,`assign()`重载函数用于替换内容,`push_*/pop_*`管理两端元素,`insert()`插入元素,`erase()`删除元素,`resize()`调整大小,`clear()`清空容器。这些接口与`vector`和`string`类似,方便使用。
|
7月前
|
索引 Python
List
List
38 6
|
7月前
|
人工智能
B - Dima and To-do List
B - Dima and To-do List
37 0
|
JSON 前端开发 Java
一个 List.of 引发的“血案”
本文作者将分享一个使用List.of后掉进的坑以及爬坑的全过程,希望大家能引以为戒同时引起这样的意识:在使用新技术前先搞清楚其实现的原理。
|
缓存 编译器 C++
list的实现
list的实现
【C++】list的介绍和使用(下)
【C++】list的介绍和使用(下)
【C++】list的介绍和使用(下)