【发布时间】:2023-12-02 17:01:02
【问题描述】:
我有一个运输限制表,其中包含以下规则:
ProductClass:“Suites”无法运送到“Georgia”,
ProductClass:'Body Spray' 和 Hazmat:True 不能运送到邮政编码:322001
ProductClass:“婴儿玩具”无法运送到“美国”,
而且我们有一条规则,例如,我不能将任何物品运送到“亚利桑那”州。
ProductClass、Hazmat 和 ShippingMethod 是一组(零个或多个属性可以有值)。
同样,邮政编码、州、国家是另一组(每条规则只有一个填充值)。
这是配置/静态数据,它会很大(超过 10k 条规则)
| RuleId | Product Class | Hazmat | ShippingMethod | Postal Code | State | Country |
|---|---|---|---|---|---|---|
| 1 | Suits | Georgia | ||||
| 2 | Body Spray | TRUE | 322001 | |||
| 3 | Body Spray | 322009 | ||||
| 4 | Baby Toys | US | ||||
| 5 | Guns | Florida | ||||
| 6 | Air | Hawaii | ||||
| 7 | Arizona |
现在我收到了 3 件商品的订单,例如:
项目 1:ProductClass 'Suits',危险品:false,ShippingMethod:'ByAir',邮政编码:322002,状态:'Texas'
项目 2:ProductClass 'Guns',危险品:false,ShippingMethod:'ByAir',邮政编码:322009,州:'Texas'
第 3 项:ProductClass 'Baby Toys',危险品:false,ShippingMethod:'ByAir',邮政编码:322011,州:'Florida'
期望是一个订单可以包含 5 到 15 个项目。
当我收到订单时(在我的示例中,我收到了包含 3 件商品的订单),我需要通过上面配置的所有这些限制规则运行,如果一个项目有一个/多个限制规则匹配,则需要记录它们。
在 Java 中实现这一目标的最佳算法是什么。
【问题讨论】:
-
不要关闭这个帖子,如果你们不明白的问题,请告诉我,请告诉我哪部分不明白,我会尽量详细说明。
标签: java algorithm data-structures graph-algorithm recursive-datastructures