Anylogic中Linked list函数及例子

链表(LinkedList对象)是另一种流行的集合类型。

链表用于模拟栈或队列结构,它们是顺序存储,其中的元素主要从一端或两端添加和删除。

考虑一个分销商模型,该模型维护着来自零售商的订单积压。假设有一个Order类,其中包含一个amount字段。积压订单(本质上是一个FIFO队列)可以通过以下代码创建:

LinkedList<Order> backlog = new LinkedList<Order>();

函数

LinkedList对象支持所有集合通用的函数(如size()或isEmpty()),并且还提供自己的API。

以下函数与上述示例相关,该示例中的Order对象构成链表的元素。要在您自己的链表中使用它们,请指定适当的对象类型。

函数描述
Order getFirst()返回列表中的第一个元素。
Order getLast()返回列表中的最后一个元素。
addFirst(Order o)

在列表的开头插入指定的元素。

o — 要插入的元素。

addLast(Order o)

将指定的元素追加到列表的末尾。

o — 要追加的元素。

Order removeFirst()从列表中移除并返回第一个元素。
Order removeLast()从列表中移除并返回最后一个元素。
示例
假设分销商收到新订单时,会将其放置在积压订单的末尾:
backlog.addLast(order);

每次库存得到补充时,分销商都会尝试从积压订单的顶部开始发货。如果订单中的数量大于剩余库存,则订单处理停止。订单处理可能如下所示:

while(!backlog.isEmpty()) { // 在积压订单不为空的情况下重复以下代码  
  Order order = backlog.getFirst(); // 选择积压订单中的第一个订单 
  if(order.amount <= inventory) {// 如果有足够的库存来完成此订单  
    ship(order); // ship
    inventory -= order.amount; // reduce available inventory // 从积压订单中移除已发货的订单  
    backlog.removeFirst(); // remove the order from the backlog
  } else { // not enough inventory to ship // 如果库存不足以发货当前订单  
    break; // stop processing the order backlog// 停止处理订单积压
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值