91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 0.02M
    文件類型: .java
    金幣: 1
    下載: 0 次
    發布日期: 2021-05-13
  • 語言: Java
  • 標簽: 其他??

資源簡介

LoadBox.java

資源截圖

代碼片段和文件信息

package?cn.edu.ruc.iir.xpace.algorithm;

import?com.alibaba.fastjson.JSON;

import?java.io.BufferedReader;
import?java.io.FileReader;
import?java.io.IOException;
import?java.util.*;


/**
?*?@version?V1.0
?*?@Package:?cn.edu.ruc.iir.xpace.algorithm
?*?@ClassName:?GoodsInBox
?*?@Description:?商品裝箱服務
?*?@author:?taoyouxian
?*?@date:?Create?in?2018-09-25?13:34
?**/
public?class?GoodsInBox?{

????private?int?runcount?=?0;
????/*?箱子的型號盛放空間?*/
????private?Listject>>?boxTypeList;
????/*?訂單中的商品?*/
????private?Listject>>?goodsList;
????/*?計算結果?*/
????private?Setject>>?result?=?new?HashSetject>>();
????/*?箱子裝東西的情況,key?規則:箱型_箱子id?*/
????private?Mapject?object>?boxes?=?new?HashMapject?object>();

????/**
?????*?根據箱型以及訂單中的商品,返回每個箱型需要箱子多少只。如果沒有任何的箱子能裝下某一款超大商品的時候,拋出異常
?????*
?????*?@param?boxTypeList
?????*?@param?goodsList
?????*?@return
?????*/
????public?GoodsInBox(Listject>>?boxTypeList?Listject>>?goodsList)?{
????????this.boxTypeList?=?boxTypeList;
????????this.goodsList?=?goodsList;
????????//?開始執行
????????run();
????}

????//?執行裝箱
????private?void?run()?{
????????//?預先跑一遍看看,有沒有特別大的東西
????????double?gl?=?0d?gw?=?0d?gh?=?0d;
????????double?bl?=?0d?bw?=?0d?bh?=?0d;
????????int?num?=?0;
????????for?(Mapject>?g?:?goodsList)?{
????????????num?+=?Integer.valueOf(g.get(“n“).toString());
????????????gl?=?Double.max(gl?Double.valueOf(g.get(“l“).toString()));
????????????gw?=?Double.max(gw?Double.valueOf(g.get(“w“).toString()));
????????????gh?=?Double.max(gh?Double.valueOf(g.get(“h“).toString()));
????????}
????????for?(Mapject>?b?:?boxTypeList)?{
????????????bl?=?Double.max(bl?Double.valueOf(b.get(“l“).toString()));
????????????bw?=?Double.max(bw?Double.valueOf(b.get(“w“).toString()));
????????????bh?=?Double.max(bh?Double.valueOf(b.get(“h“).toString()));
????????}
????????if?(gl?>?bl?&&?gl?>?bw)?{
????????????throw?new?java.lang.RuntimeException(“估算失敗,存在體積過大商品,請重新選擇后再試。(長度超出范圍)“);
????????}
????????if?(gw?>?bw?&&?gw?>?bl)?{
????????????throw?new?java.lang.RuntimeException(“估算失敗,存在體積過大商品,請重新選擇后再試。(寬度超出范圍)“);
????????}
????????if?(gh?>?bh)?{
????????????throw?new?java.lang.RuntimeException(“估算失敗,存在體積過大商品,請重新選擇后再試。(高度超出范圍)“);
????????}
????????if?(num?>?500)?{
????????????throw?new?java.lang.RuntimeException(“估算失敗,商品數量過多,請重新選擇后再試。(大于500件)“);
????????}

????????for?(final?Mapject>?abox?:?boxTypeList)?{
????????????tryInSpance(abox/*?給一個盒子?*/?new?java.util.ArrayListject>>()?{
????????????????{
????????????????????this.add(abox);
????????????????}
????????????}/*?什么都沒有裝,盒子的空間還是這個盒子?*/?false/*?已知目前這個盒子沒有滿?*/?(goodsList)/*?急需進入盒子的商品?*/?boxTypeList);
????????}
????}

????/**
?????*?每次測試1塊空間,和全部商品,將商品依次向空間轉移,放進去后產生新的3塊空間,?同時商品的數量再減少,直到商品全部轉移;
?????*
?????*?@param?box????????一只箱子
?????*?@param?moreSpance?這只箱子還剩余多少空間,

評論

共有 條評論