LinkedList能够直接实现栈的所有功能:
public class Stack<T>{
private linkedList<T> storage = new LinkedList<T>() ;
public void push(T v){ storage.addFirst(v);}
public T peek(){ return storage.getFirst() ;}
public T pop(){ return storage.removeFirst();}
public boolean empty(){ return storage.isEmpty();}
public String toString(){ return storage.toString()}
}
注意,在java.util包中也存在一个Stack,但是LinkedList更好的实现了Stack,所以采用如上方式。实例化时以防冲突采用包名.类名称的方式。
Set:不保存重复元素,最大的作用是测试归属性。
|-HashSet使用散列存放。
|-TreeSet将元素存放在红-黑树数据结构中。
|-LinkedHashList因为查询速度的原因也是散列存放的但是看起来它使用了链表来维护元素的插入顺序。
Set<String> set1 = new HashSet<String> () ;
Collections.addAll(set1,"A B C D".split("")) ;
set1.contains("H");
Set<String> set2 = new HashSet<String> () ;
Collections.addAll(set2 ,"A B C D F".split("")) ;
set2.containsAll(set1)