1.首先谈谈什么是方法签名?
在同一个作用域中不能定义两个相同名称的标识符。比如:方法中不能定义两个名字一样的变量,那为什么类中就可以定义方法名相同的方法呢?
方法签名即:经过编译器修改过之后方法最终的名字。具体方法:方法全路径名+参数列表+返回值类型,构成方法完整的名字。
2.Iterable
常见方法:Iterator<T> iterator()
返回 T类型的元素的迭代器。
Iterable是一种设计模式,开发人员无需了解序列的底层结构就可以遍历该序列。在Java中,Iterable的功能比较简单,只能单向移动。直接实现Iterable接口的数据类型都可以使用迭代器遍历查找。Iterable接口含有3个重要的方法:hasNext()、next()、和remove()方法。首先使用hasNext()判断迭代器是否有后续对象,如果有,用next()方法接收,同时还可以用remove()方法删除该元素。
同时,增强型for循环可以循环实现Iterable接口的数据类型,这种循环只能做简单的遍历工作,无法想Iterable对象那样删除数据等。
3.Collection
public interface Collection<E>
extends Iterable<E>
E-集合中元素的类型
在所有的Java集合框架中,Collection是其顶层的接口。集合中有丰富的抽象数据类型,这些数据类型也封装了对应的算法以实现数据低耗高效的特点。Collection是Java的集合操作类的基本接口,该接口用于表示任何元素或对象组,支持添加、删除和迭代等功能。Collcetion的通用方法如下:
方法名称 | 功能描述 |
---|---|
boolean add(Object element) | 添加一个元素到集合中 |
boolean add(Collection from) | 将from集合中的所有元素添加到集合中 |
void clear() | 清空集合 |
boolean contains(Object obj) | 判断集合中是否含有该元素 |
boolean containsAll(Collection c) | 判断集合中是否包含了集合c中所有的元素 |
boolean equals(Object obj) | 判断集合是否相等 |
bollean isEmpty() | 判断集合是否为空 |
Iterable iterator() | 返回了一个实现Iterable接口的对象 |
boolean remove(Object element) | 删除集合中的该元素 |
boolean removeAll(Collection c) | 删除集合中所有与c集合中相同的元素 |
boolean retainAll(Collection c) | 删除集合中不在c中的元素 |
int size() | 返回集合中元素的数目 |
4.List
链表分为两个部分,一个是数据部分,用于存储数据;一个是连动部分,用于指向前一个元素的位置和后一个元素的位置。链表继承于Collection接口,用于定义一个可以重复的有序集合。该接口允许用于对列表按位置的操作,查询则是从链表的头部或尾部开始。
List接口有两个实现类,ArrayList和LinkedList。ArrayList是用数组实现的List,能进行快速的随机访问,但是随机插入和删除操作比较慢。LinkedList对顺序访问进行了优化,在插入和删除元素的操作上代价也不高,但是随机访问的速度相比就会很慢。
ArrayList(顺序表)
顺序表的特点是用元素在计算机内物理位置的相邻来表示线性表中数据元素之间的逻辑关系,这种模式使得顺序表的随机读取速度非常快。顺序表的常用方法:List<String>subList=subList(beginIndex,endIndex) 获取顺序表的子表
LinkedList(链表)
链表就像长城上的烽火台,他们遥相呼应但不在一起,但是信息能准确地一点一点地向下传递,直到传递到最后一个烽火台。链表就是这样,可以存在于计算机的互不相邻的物理内存中,但是根据每个元素的前驱地址就可以找到上一个元素或者根据后继地址找到下一个元素。链表分为单向链表和双向链表,单向链表只能从链表的第一个元素依次向下查找,双向链表可以从任意位置向前或向后查找。链表的常用方法如下。
方法名称 | 功能描述 |
void addFirst(E e) | 将给定的元素放到链表的最前面 |
void addLast(E e) | 将给定的元素放到链表的最后面 |
E element() | 获取链表的第一个元素 |
E get(int index) | 获取指定位置的元素 |
E getFirst() | 获取第一个元素 |
E gerLast() | 获取最后一个元素 |
int indexOf(Object obj) | 获取obj在链表中第一次出现的位置,-1表示未找到 |
int lastIndex(Object obj) | 获取obj在链表中最后一次出现的位置,-1表示未找到 |
ListIterator<E>listIterator(int index) | 获取从index开始的迭代器 |
boolean offer(E e) | 将元素e加入链表的尾部 |
E peek() | 获取第一个元素 |
E poll() | 获取并删除第一个元素 |
E remove() | 获取并删除第一个元素 |
E remove(int index) | 获取并删除指定位置的元素 |
E removeFirst() | 获取并删除第一个元素 |
E removeLast() | 获取并删除最后一个元素 |
E set(int index,Element e) | 将指定位置的值用e代替 |
Object[] toArray() | 将所有元素组织成一个数组 |