JZ6 从尾到头打印链表
- 反向输入,后进先出,应该想到(stack),java里不推荐使用stack数据类型,用deque的操作来代替
- 先记录下数组的长度,然后创建一个数组记录这些数字,最后全部给到arraylist
Deque 接口操作
1. 添加元素
- addFirst(E e):在队列头部添加元素。
- addLast(E e):在队列尾部添加元素。
- offerFirst(E e):在队列头部添加元素,如果成功返回 true,失败返回 false。
- offerLast(E e):在队列尾部添加元素,如果成功返回 true,失败返回 false。
2. 删除元素
- removeFirst():删除并返回队列头部的元素。如果队列为空,抛出 NoSuchElementException。
- removeLast():删除并返回队列尾部的元素。如果队列为空,抛出 NoSuchElementException。
- pollFirst():删除并返回队列头部的元素。如果队列为空,返回 null。
- pollLast():删除并返回队列尾部的元素。如果队列为空,返回 null。
3. 查询元素
- getFirst():获取队列头部的元素,但不删除。如果队列为空,抛出 NoSuchElementException。
- getLast():获取队列尾部的元素,但不删除。如果队列为空,抛出 NoSuchElementException。
- peekFirst():获取队列头部的元素,但不删除。如果队列为空,返回 null。
- peekLast():获取队列尾部的元素,但不删除。如果队列为空,返回 null。
4. **栈操作(**LIFO 行为)
- push(E e):将元素推入栈顶。
- pop():弹出栈顶的元素。
5. 其他操作
- isEmpty():检查队列是否为空,返回 true 或 false。
- size():返回队列中元素的数量。
List接口操作
List 接口操作
1. 添加元素
- add(E e):在列表末尾添加一个元素。
- add(int index, E element):在指定位置插入一个元素,后面的元素会向后移动。
- addAll(Collection<? extends E> c):在列表末尾添加一个集合中的所有元素。
- addAll(int index, Collection<? extends E> c):在指定位置插入集合中的所有元素。
2. 获取元素
- get(int index):根据索引获取指定位置的元素。
3. 修改元素
- set(int index, E element):根据索引更新指定位置的元素。
4. 删除元素
- remove(int index):根据索引删除指定位置的元素。
- remove(Object o):删除列表中首次出现的指定元素。
- removeAll(Collection<?> c):删除列表中所有包含在指定集合中的元素。
- clear():清空列表中的所有元素。
5. 查询元素
- contains(Object o):检查列表中是否包含指定元素。
- indexOf(Object o):返回列表中首次出现指定元素的索引,如果不存在则返回 -1。
- lastIndexOf(Object o):返回列表中最后一次出现指定元素的索引,如果不存在则返回 -1。
- isEmpty():检查列表是否为空。
- size():返回列表中元素的数量。
6. 子列表
- subList(int fromIndex, int toIndex):返回列表中从 fromIndex(包含)到 toIndex(不包含)的部分。
7. 转换为数组
- toArray():将列表转换为数组。
- toArray(T[] a):将列表转换为指定类型的数组。