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



相关文章
|
SQL 缓存 运维
PostgreSQL 事务号回卷分析
## XID 定义 xid 是个啥东西?xid 就是 PostgreSQL 里面的事务号,每个事物都会分配一个 xid。PostgreSQL 数据中每个元组头部都会保存着 插入 或者 删除 这条元组的事务号,即 xid,然后内核通过这个 xid 进行元组的可见性判断。简单理解,比如有两个事务,xid1=200,xid2=201,那么 xid1 中只能看到 t_xmin 200 的元组。 ```c
|
机器学习/深度学习 编解码 算法
【论文理解】ICCV2021-视频中小目标检测Dogfight
论文地址:https://arxiv.org/abs/2108.02092目标:在无人机飞行过程中捕获的背景杂乱的画面中检测其他无人机挑战:任意的移动(相机移动,目标也移动)小尺寸,只占画面像素的0.05%~0.07%(PASCAL VOC (22.62%) and ImageNet (19.94%))形状变换(拍摄角度不同,拍摄的无人机形状不同)遮挡基于region-proposal的方法无法捕
|
并行计算 Ubuntu 机器人
计算机视觉教程7-3:Openpose配置与实践
计算机视觉教程7-3:Openpose配置与实践
2977 0
计算机视觉教程7-3:Openpose配置与实践
|
10月前
|
移动开发 前端开发 JavaScript
前端H5使用canvas画爱心以及笑脸
本文介绍了HTML5中的canvas元素及其基本用法,通过JavaScript在canvas上绘制图形。首先简述了canvas的功能,接着详细展示了如何使用`bezierCurveTo`方法绘制爱心和`arc`方法绘制笑脸,并附有示例代码及效果说明。最后总结了canvas在网页图形绘制上的应用潜力。
268 2
AndroidStudio常用设置
AndroidStudio常用设置
170 2
|
机器学习/深度学习 存储 PyTorch
【深度学习】Pytorch面试题:什么是 PyTorch?PyTorch 的基本要素是什么?Conv1d、Conv2d 和 Conv3d 有什么区别?
关于PyTorch面试题的总结,包括PyTorch的定义、基本要素、张量概念、抽象级别、张量与矩阵的区别、不同损失函数的作用以及Conv1d、Conv2d和Conv3d的区别和反向传播的解释。
840 2
使用 Playwright 复用 Cookie:简化自动化测试的高效方法
Playwright 提供的 Cookie 复用功能允许在不同测试用例间共享会话状态,提高测试效率。通过 `context.set_cookies()` 方法设置共享 Cookie 数据,确保会话在多个测试中保持一致。优点包括节省时间、维持稳定会话,但需注意可能增加测试用例间的依赖。使用此功能可优化自动化测试流程。
|
图形学
【unity小技巧】Unity人物衣服布料系统的探究 —— Cloth组件
【unity小技巧】Unity人物衣服布料系统的探究 —— Cloth组件
692 0
|
架构师 程序员
程序员如何度过30岁危机?
程序员如何度过30岁危机?
|
存储 缓存 固态存储
ES冷热分离架构设计:一招让你的ELK日志系统节省 50% 的硬盘成本
ES冷热分离架构设计:一招让你的ELK日志系统节省 50% 的硬盘成本
ES冷热分离架构设计:一招让你的ELK日志系统节省 50% 的硬盘成本