1.使用栈计算后缀表达式
算法如下:从左到右扫描表达式,依次识别每个标记,如果是操作数,入栈,如果是运算符,pop两个元素计算,再将结果入栈。当到达表达式尾部时,栈中保留的元素就是表达式的最后结果。
Javadoc标记是一个良好的函数注释标记
再idea上快速注释是再函数前写/**+enter键
对于泛型来说,程序员最常犯的错误就是尝试创建泛型数组(在类中):
stack = new T[];这是错误的,不能实列化
应该这么写:
stack = (T[]) (new object[])
但这样写会产生警告,这是因为这种转换是一种未检查类型的转换,而java编译器无法保证这种强制类型转换的安全性。可以在语句前加上@SuppressWarnings('unchecked")
常见实用类:Stack,ArrayList
工具类 Arrays
链式结构
public class Person{
private String name;
private String data;
private Person next;
}
队列
需要由enqueue dequeue first(检查队列前端的元素) isEmpty size toString等操作
接口 Queue
boolean add(E e)
将指定的元素插入此队列(如果立即可行且不会违反容量限制),在成功时返回 true,如果当前没有可用的空间,则抛出 IllegalStateException。
E element()
获取,但是不移除此队列的头。
boolean offer(E e)
将指定的元素插入此队列(如果立即可行且不会违反容量限制),当使用有容量限制的队列时,此方法通常要优于 add(E),后者可能无法插入元素,而只是抛出一个异常。
E peek()
获取但不移除此队列的头;如果此队列为空,则返回 null。
E poll()
获取并移除此队列的头,如果此队列为空,则返回 null。
E remove()
获取并移除此队列的头。
对于队列还要知道 链队列、循环队列、双端队列等基本知识
列表
分为三种,有序列表、无序列表、索引列表
List接口
boolean add(E e)
向列表的尾部添加指定的元素(可选操作)。
void add(int index, E element)
在列表的指定位置插入指定元素(可选操作)。
boolean addAll(Collection<? extends E> c)
添加指定 collection 中的所有元素到此列表的结尾,顺序是指定 collection 的迭代器返回这些元素的顺序(可选操作)。
boolean addAll(int index, Collection<? extends E> c)
将指定 collection 中的所有元素都插入到列表中的指定位置(可选操作)。
void clear()
从列表中移除所有元素(可选操作)。
boolean contains(Object o)
如果列表包含指定的元素,则返回 true。
boolean containsAll(Collection<?> c)
如果列表包含指定 collection 的所有元素,则返回 true。
boolean equals(Object o)
比较指定的对象与列表是否相等。
E get(int index)
返回列表中指定位置的元素。
int hashCode()
返回列表的哈希码值。
int indexOf(Object o)
返回此列表中第一次出现的指定元素的索引;如果此列表不包含该元素,则返回 -1。
boolean isEmpty()
如果列表不包含元素,则返回 true。
Iterator iterator()
返回按适当顺序在列表的元素上进行迭代的迭代器。
int lastIndexOf(Object o)
返回此列表中最后出现的指定元素的索引;如果列表不包含此元素,则返回 -1。
ListIterator listIterator()
返回此列表元素的列表迭代器(按适当顺序)。
ListIterator listIterator(int index)
返回列表中元素的列表迭代器(按适当顺序),从列表的指定位置开始。
E remove(int index)
移除列表中指定位置的元素(可选操作)。
boolean remove(Object o)
从此列表中移除第一次出现的指定元素(如果存在)(可选操作)。
boolean removeAll(Collection<?> c)
从列表中移除指定 collection 中包含的其所有元素(可选操作)。
boolean retainAll(Collection<?> c)
仅在列表中保留指定 collection 中所包含的元素(可选操作)。
E set(int index, E element)
用指定元素替换列表中指定位置的元素(可选操作)。
int size()
返回列表中的元素数。
List subList(int fromIndex, int toIndex)
返回列表中指定的 fromIndex(包括 )和 toIndex(不包括)之间的部分视图。
Object[] toArray()
返回按适当顺序包含列表中的所有元素的数组(从第一个元素到最后一个元素)。
T[]
toArray(T[] a)
返回按适当顺序(从第一个元素到最后一个元素)包含列表中所有元素的数组;返回数组的运行时类型是指定数组的运行时类型。