许多基础的数据类型都和对象的集合有关,数据类型的值就是一组对象的集合,所有的操作都是关于添加、删除或是访问集合中的对象。
下面是对背包、队列和栈三种集合数据类型的API的定义:
// 背包Bag
public class Bag<Item> implements Iterable<Item>
Bag() // 创建一个空背包
void add(Item item) // 向背包中添加一个元素
boolean isEmpty() // 背包是否为空
int size() // 背包中元素的数量
// 先进先出(FIFO)队列
public class Queue<Item> implements Iterable<Item>
Queue() // 创建一个空队列
void enqueue() // 向队列中添加一个元素
Item dequeue() // 删除最早添加的元素
boolean isEmpty() // 队列是否为空
int size() // 队列中元素的数量
// 下压栈(后进后出 LIFO)
public class Stack<Item> implements Iterable<Item>
Stack() // 创建一个空栈
void push() // 将元素进栈
Item pop() // 弹出栈顶元素
boolean isEmpty() // 栈是否为空
int size() // 栈中的元素数量
背包
背包是一种不支持从中删除元素的集合数据类型—它的目的就是帮助收集元素并迭代所有元素
先进先出队列
一种基于先进先出策略的集合类型。当使用foreach语句迭代队列时,元素的处理顺序就是它们被添加到队列中的顺序
下压栈
一种基于后进先出策略的集合类型。模型类似于收信箱,在收信时将邮件压入(push)最顶端,在取信时将最顶端的信件弹出(pop),取信时第一封一定是最新的邮件