自动装箱和自动拆箱
Stack<Integer> stack = new Stack<Integer>;
stack.push(17); int --> Integer
int value = stack.pop(); Integer --> int
ADT实现Iterable接口可以用foreach来遍历
for(Transaction t :collection){
}
可以写一个内部类继承
private class ReverseArrayIterator implements Iterator<Item>{
pubilc boolean hasNext(){}
public Item next(){}
}
Dijkstra的双栈算术表达式求值算法,两个栈,一个栈保存结果,另一个栈保存值,左括号忽略,右括号求值
不允许创建泛型数组
a = (Item[])new Object[cap];
避免对象游离的方法就是设计为null,比如数组弹出一个对象,这个对象永远都不会被访问了,这时候就是有力对象,可以设置为null
Java的命名规则是用$来分割外部类和内部类,比如你反编译一个jar文件,可能出现相同名字但是好多$分割的类,这就说明是内部类。
不成熟的优化是万恶之源
public class SequentialSearchST<Key,Value>{
}
散列: 符号表 拉链法 线性探测再散列
用BST实现符号表