背包,队列和栈

### 泛型
泛型,也叫做参数化类型。
< type >将type定义为一个类型参数,它是一个象征性的占位符,表示的是用例将会使用的某种具体数据类型。type将会在需要时被替换为任意引用数据类型。
泛型可以在编译时就发现类型错误,若定义为Object类型,并进行类型转换,则在运行时才能发现类型错误。
注意:泛型的数据类型必须为引用类型,不可以为原始数据类型(如:int,double)。
自动装箱:自动将一个原始数据类型转换为对应的引用类型。
自动拆箱:自动将原始数据类型对应的引用类型转换为原始数据类型。
 
 

数组和链表

背包,队列,栈可以用数组或者链表实现。
数组是固定大小的,必须在创建时就指定大小。若要提高灵活性和资源利用率,需要通过拷贝当前数组到更大/更小的新数组,来实现自动扩充或缩小。
链表的基本单位是节点(node),每个节点都包含数据和指向下一个节点的引用。节点用多少创建多少,不用的节点失去引用被垃圾回收,无需担心链表的大小问题。但是比起数组多维护了引用这一资源,增加了复杂性和占用空间。
 
 

背包

背包(Bag)收集元素并迭代遍历所有收集到的元素。
迭代的顺序不确定,使用背包说明元素的处理顺序不重要。
背包不支持从中删除元素。
API:

  • Bag()
  • void add(Item item)
  • boolean isEmpty()
  • int size()

 
 

队列

队列(Queue)是一种基于先进先出(FIFO)策略的集合类型。
API:

  • Queue()
  • void enqueue(Item item)
  • Item dequeue()
  • boolean isEmpty()
  • int size()

 
 

栈(Stack)是一种基于后进先出(LIFO)策略的集合类型。
API:

  • Stack()
  • void push(Item item)
  • Item pop()
  • boolean isEmpty()
  • int size()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值