Java隊列是計算機(jī)科學(xué)中的一種常見數(shù)據(jù)結(jié)構(gòu),是一種先進(jìn)先出(FIFO)的數(shù)據(jù)集合。 它可以看作是一個線性表,只能在隊列的前端進(jìn)行刪除操作,而在隊列的后端進(jìn)行插入操作。Java中的Queue接口定義了一個隊列,它的實(shí)現(xiàn)可以分為單向隊列、雙向隊列等多種形式。
public interface Queue<E> extends Collection<E> { // 添加元素到隊列尾部 boolean offer(E e); // 獲取并移除隊列頭部的元素 E poll(); // 獲取但不移除隊列頭部的元素 E peek(); }
Java棧也是計算機(jī)科學(xué)中的一種常見數(shù)據(jù)結(jié)構(gòu),是一種后進(jìn)先出(LIFO)的數(shù)據(jù)集合。它也可以看作是一個線性表,只能在棧的頂部進(jìn)行插入和刪除操作。Java中的Stack類實(shí)現(xiàn)了一個標(biāo)準(zhǔn)的LIFO棧。除了基本的push和pop操作,該類還提供了一些其他的方法,如empty、peek和search等。
public class Stack<E> extends Vector<E> { // 獲取但不移除棧頂元素 public synchronized E peek(); // 移除棧頂元素并返回 public synchronized E pop(); // 把元素壓入棧頂 public E push(E item); // 返回元素在棧中的位置 public synchronized int search(Object o); }