【Java】Iterable、Collection、List 的语法、常见方法签名以及含义

简介: 【Java】Iterable、Collection、List 的语法、常见方法签名以及含义

Iterable

语法

Iterable 是一个具有迭代(遍历)功能的接口,并且是一个泛型接口

常见方法

Iterator<T> iterator();

功能

public interface Iterable <T> {
  Iterator<T> iterator();
}

一个对象实现 Iterable 接口就说明这个对象具备了迭代能力

Iterable 接口提供了一个 iterator() 方法,这个方法返回一个 Iterator 对象:用来迭代的对象(被称为迭代器

Collection

语法

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

Collection 是继承自 Iterable 的泛型接口

Collection 是不一定具备线性结构的特点

所有的 Collection 都具备迭代能力

线性表是一种 Collection

非线性表也是一种 Collection

常见方法


int size();

返回容器中元素的个数

boolean isEmpty();

容器是否为空

boolean contains(Object o);


容器中是否存在 o 元素

隐含着,需要遍历容器中所有的元素,和 o 元素进行相等性比较

因此,想让 contains 正确的返回,必须正确重写元素的 equals 方法


boolean add(E e);


把元素 e 放入容器中

容器中不允许出现相同元素,当尝试放入重复的元素时,放入就会失败


boolean remove(Object o);


将容器中和 o 相等的其中一个元素删除掉

提到相等性,就必须正确重写 equals 方法


boolean addAll(Collection c);


将 c 中所有元素都放到当前容器中,放入之后元素之间没有顺序


void clear();


清空容器内所有元素


List

语法

public interface List<E> extends Collection<E> {
}

继承自 Collection

线性结构

元素有顺序

可以排序、头插、尾插、头删、尾删

常见方法

boolean add(E e);

往容器中添加元素 e ,因为是线性结构,所以对应尾插操作,并且尾插不可能失败,返回值永远是 true


void add(int index, E element);

1将元素插入到给定== index 下标位置==处,index 后的所有元素逻辑上后移一位


boolean remove(Object o);

删除第一个遇到的和 o 元素相等的元素

提到相等性,则需正确重写 equals 方法

返回值代表是否删除成功

E remove(int index);

将 index 位置的元素从线性结构中取出并返回,让 index 后的所有元素逻辑上前移一位

boolean addAll(Collection c);

将 c 容器中的所有元素(按照一定次序),一个个的尾插到 this 容器中

void sort(Comparator<E> c);

以 c 作为元素的比较器(天平),衡量元素大小进行排序

E get(int index);

返回 index 位置的元素

E set(int index, E element);

用 element 替换 index 位置的元素,并返回 index 位置原来的元素

int indexOf(E e);

从前往后,第一个和 e 相等的元素所在位置

相等:equals

int lastIndexOf(E e);

从前往后,最后一个和 e 相等的元素所在位置

相等:equals

List<E> subList(int fromIndex, int toIndex);

将原有线性结构的 [ fromIndex, toIndex ) 截取成一个新的线性结构并返回

目录
相关文章
|
7天前
|
存储 Java 程序员
优化Java多线程应用:是创建Thread对象直接调用start()方法?还是用个变量调用?
这篇文章探讨了Java中两种创建和启动线程的方法,并分析了它们的区别。作者建议直接调用 `Thread` 对象的 `start()` 方法,而非保持强引用,以避免内存泄漏、简化线程生命周期管理,并减少不必要的线程控制。文章详细解释了这种方法在使用 `ThreadLocal` 时的优势,并提供了代码示例。作者洛小豆,文章来源于稀土掘金。
|
12天前
|
Java
用JAVA架建List集合为树形结构的代码方法
这段代码定义了一个表示树形结构的 `Node` 类和一个用于构建树形结构的 `TreeController`。`Node` 类包含基本属性如 `id`、`pid`、`name` 和 `type`,以及子节点列表 `children`。`TreeController` 包含初始化节点列表并将其转换为树形结构的方法。通过过滤和分组操作实现树形结构的构建。详情可见:[代码示例链接1](http://www.zidongmutanji.com/zsjx/43551.html),[代码效果参考链接2](https://www.257342.com/sitemap/post.html)。
25 5
|
15天前
|
安全 Java 开发者
【技术咖必看】Java异常处理新境界:throws关键字,打造万无一失的方法签名!
【技术咖必看】Java异常处理新境界:throws关键字,打造万无一失的方法签名!
29 3
|
11天前
|
Java 开发者
探索Java中的Lambda表达式:简化代码的现代方法
【8月更文挑战第31天】Lambda表达式在Java 8中首次亮相,为Java开发者提供了一种更简洁、灵活的编程方式。它不仅减少了代码量,还提升了代码的可读性和可维护性。本文将通过实际示例,展示Lambda表达式如何简化集合操作和事件处理,同时探讨其对函数式编程范式的支持。
|
Java
Java中将Iterable转成Stream的正确姿势
Java中将Iterable转成Stream的正确姿势
855 0
|
8天前
|
监控 Java 调度
【Java学习】多线程&JUC万字超详解
本文详细介绍了多线程的概念和三种实现方式,还有一些常见的成员方法,CPU的调动方式,多线程的生命周期,还有线程安全问题,锁和死锁的概念,以及等待唤醒机制,阻塞队列,多线程的六种状态,线程池等
64 6
【Java学习】多线程&JUC万字超详解
|
2天前
|
Java 调度 开发者
Java并发编程:深入理解线程池
在Java的世界中,线程池是提升应用性能、实现高效并发处理的关键工具。本文将深入浅出地介绍线程池的核心概念、工作原理以及如何在实际应用中有效利用线程池来优化资源管理和任务调度。通过本文的学习,读者能够掌握线程池的基本使用技巧,并理解其背后的设计哲学。
|
1天前
|
缓存 监控 Java
Java中的并发编程:理解并应用线程池
在Java的并发编程中,线程池是提高应用程序性能的关键工具。本文将深入探讨如何有效利用线程池来管理资源、提升效率和简化代码结构。我们将从基础概念出发,逐步介绍线程池的配置、使用场景以及最佳实践,帮助开发者更好地掌握并发编程的核心技巧。
|
3天前
|
缓存 监控 Java
java中线程池的使用
java中线程池的使用
|
2天前
|
算法 Java 数据处理
Java并发编程:解锁多线程的力量
在Java的世界里,掌握并发编程是提升应用性能和响应能力的关键。本文将深入浅出地探讨如何利用Java的多线程特性来优化程序执行效率,从基础的线程创建到高级的并发工具类使用,带领读者一步步解锁Java并发编程的奥秘。你将学习到如何避免常见的并发陷阱,并实际应用这些知识来解决现实世界的问题。让我们一起开启高效编码的旅程吧!