【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 ) 截取成一个新的线性结构并返回

目录
相关文章
|
2月前
|
存储 Java 容器
Java基本语法详解
本文深入讲解了Java编程的基础语法,涵盖数据类型、运算符、控制结构及数组等核心内容,帮助初学者构建坚实的编程基础。
|
1月前
|
存储 SQL NoSQL
Redis-常用语法以及java互联实践案例
本文详细介绍了Redis的数据结构、常用命令及其Java客户端的使用,涵盖String、Hash、List、Set、SortedSet等数据类型及操作,同时提供了Jedis和Spring Boot Data Redis的实战示例,帮助开发者快速掌握Redis在实际项目中的应用。
198 1
Redis-常用语法以及java互联实践案例
|
23天前
|
Java
Java基础语法与面向对象
重载(Overload)指同一类中方法名相同、参数列表不同,与返回值无关;重写(Override)指子类重新实现父类方法,方法名和参数列表必须相同,返回类型兼容。重载发生在同类,重写发生在继承关系中。
91 1
|
3月前
|
Java 数据库连接 数据库
Java 相关知识点总结含基础语法进阶技巧及面试重点知识
本文全面总结了Java核心知识点,涵盖基础语法、面向对象、集合框架、并发编程、网络编程及主流框架如Spring生态、MyBatis等,结合JVM原理与性能优化技巧,并通过一个学生信息管理系统的实战案例,帮助你快速掌握Java开发技能,适合Java学习与面试准备。
149 2
Java 相关知识点总结含基础语法进阶技巧及面试重点知识
|
2月前
|
算法 Java 测试技术
零基础学 Java: 从语法入门到企业级项目实战的详细学习路线解析
本文为零基础学习者提供完整的Java学习路线,涵盖语法基础、面向对象编程、数据结构与算法、多线程、JVM原理、Spring框架、Spring Boot及项目实战,助你从入门到进阶,系统掌握Java编程技能,提升实战开发能力。
157 0
|
9月前
|
安全 架构师 Java
Java大厂面试高频:Collection 和 Collections 到底咋回答?
Java中的`Collection`和`Collections`是两个容易混淆的概念。`Collection`是集合框架的根接口,定义了集合的基本操作方法,如添加、删除等;而`Collections`是一个工具类,提供了操作集合的静态方法,如排序、查找、同步化等。简单来说,`Collection`关注数据结构,`Collections`则提供功能增强。通过小王的面试经历,我们可以更好地理解这两者的区别及其在实际开发中的应用。希望这篇文章能帮助你掌握这个经典面试题。
202 4
|
3月前
|
存储 安全 Java
从基础语法到实战应用的 Java 入门必备知识全解析
本文介绍了Java入门必备知识,涵盖开发环境搭建、基础语法、面向对象编程、集合框架、异常处理、多线程和IO流等内容,结合实例帮助新手快速掌握Java核心概念与应用技巧。
80 0
|
7月前
|
人工智能 Java
Java 中数组Array和列表List的转换
本文介绍了数组与列表之间的相互转换方法,主要包括三部分:1)使用`Collections.addAll()`方法将数组转为列表,适用于引用类型,效率较高;2)通过`new ArrayList&lt;&gt;()`构造器结合`Arrays.asList()`实现类似功能;3)利用JDK8的`Stream`流式计算,支持基本数据类型数组的转换。此外,还详细讲解了列表转数组的方法,如借助`Stream`实现不同类型数组间的转换,并附带代码示例与执行结果,帮助读者深入理解两种数据结构的互转技巧。
406 1
Java 中数组Array和列表List的转换
|
7月前
|
缓存 安全 Java
java面试-基础语法与面向对象
本文介绍了 Java 编程中的几个核心概念。首先,详细区分了方法重载与重写的定义、发生阶段及规则;其次,分析了 `==` 与 `equals` 的区别,强调了基本类型和引用类型的比较方式;接着,对比了 `String`、`StringBuilder` 和 `StringBuffer` 的特性,包括线程安全性和性能差异;最后,讲解了 Java 异常机制,包括自定义异常的实现以及常见非检查异常的类型。这些内容对理解 Java 面向对象编程和实际开发问题解决具有重要意义。
|
7月前
|
运维 Cloud Native Java
postman发起post请求遇到报错:java.io.FileNotFoundException (文件名、目录名或卷标语法不正确。)
遇到bug报错,多猜可能的原因,控制变量反复测试,直至找到问题的关键,然后再思考如何解决或者回避。 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来