篇首语:本文由编程笔记#自由互联小编为大家整理,主要介绍了IterableCollectionList 的常见方法签名以及含义相关的知识,希望对你有一定的参考价值。
文章目录
- 前言
- 一、Iterable
- 二、Collection
- 常见方法
- 三、List
- 常见方法
前言
Iterable、Collection、List 都是接口
一、Iterable
Iterable是一个泛型接口 。 T是被迭代元素的类型
public interface Iterable Iterator iterator();//抽象类中的抽象方法 default void forEach(Consumer action) Objects.requireNonNull(action); for (T t : this) action.accept(t); default Spliterator spliterator() return Spliterators.spliteratorUnknownSize(iterator(), 0); //接口中的默认方法抽象类中的非抽象方法
可简化为
public interface Iterable Iterator iterator();
一个对象提供了一个 iterator() 方法这个方法返回一个 Iterator 对象用来迭代的对象被称为迭代器就可以说这个对象具备迭代能力。
二、Collection
Collection是不一定具备线性结构的特点。线性表是一种Collection非线性表也是一种Collection。 线性结构的独有特点有 1.元素之间有前后关系 2.容器中的元素可以以下标的形式来体现 3.有头部、尾部、中间的概念
public interface Collection extends Iterable
可以看出Collection 是继承自 Iterable 的泛型接口。
常见方法
int size();//返回容器中元素的个数
boolean isEmpty();//判断容器是否为empty//size0
boolean contains(Object o);/*容器中是否存在 o 元素背后隐含着需要遍历容器中所有的元素和 o 元素进行相等性比较意味着会调用对象的equals方法结论如果要 contains 正确返回必须正确重写元素的 equals 方法*/
boolean add(E e);/*把元素 e 放入容器中由于容器中不一定是线性结构所以放入可能会失败eg:容器中不允许出现相同元素当尝试放入重复的元素时放入就会失败注意:放入无法明确放到了哪个位置*/
boolean remove(Object o);/*将容器中和 o 相等的其中一个元素删除掉1.相等性意味着equals 必须正确重写 equals 方法2.只删除一个3.不保证哪一个
boolean addAll(Collection c);//将c容器中所有元素都放到当前容器放入之后元素之间没有顺序
void clear();//清空容器内所有元素
三、List
List是线性结构 元素有顺序 可进行头插、尾插、头删、尾删、排序 List具备迭代能力 List具备装元素的能力
public interface List extends Collection
可以看出List是继承自 Collection的泛型接口。
常见方法
boolean add(E e);//虽然继承自Collection但是对应尾插操作//对于线性结构尾插不可能失败返回值永远是 true(不定义为void是因为java的方法重写规则不可以改变方法签名)
void add(int index, E element);//将元素插入到给定位置(index下标处)[index,size()) 如果存在所有元素逻辑上后移一位//index的合法范围[0,size()]
boolean remove(Object o);//明确删除第一个遇到的和o相等的元素
E remove(int index);/*将[index]位置的元素从线性结构中取出并返回[index1,size()) 所有元素逻辑上前移一位index的合法范围[0,size()]*/
boolean addAll(Collection c);//将c容器中的所有元素(按照一定次序,次序目前并不确定)一个个的尾插到this容器中
void sort(Comparator c);//以c作为元素的比较器(天平)衡量元素大小进行原地排序
E set(int index, E element);//返回index位置的元素。index的合法范围[0,size()]
E set(int index, E element);//用element替换index位置的元素并返回index位置原来的元素//index的合法范围[0,size()]
int indexOf(E e);//从前往后第一个和e相等的元素所在位置//相等:equals
int lastIndexOf(E e);//从后往前最后一个和e相等的元素所在位置//相等:equals
List subList(int fromIndex, int toIndex);//将原有线性结构的[fromIndex, toIndex)截取成一个新的线性结构并返回