private double getRests (Container c, Item i, SortedMap lt ; Container, List lt; Item gt; gt; map) {
double totalVolume=0;
double totalWeight=0;
for (Item item: map. get (c)) {+=item. volume; +=item. weight;
}
double volumeRests=c. getVolume () - totalVolume;
double cargoRests=c. getCargo () - totalWeight;
if (volumeRests lt; cargoRests) {
return volumeRests;
} else if (cargoRests lt; volumeRests) {
return cargoRests;
}
return 0;
}
}. java
package core;
import java. util. AbstractMap. SimpleEntry;
import java. util. ArrayList;
import java. utilparator;
import java. util. LinkedList;
import java. util. List;
import java. util. Map. Entry;
import java. util. Random;
import java. util. Set;
import java. util. SortedMap;
import java. util. TreeMap;
import util. ContainerTemplate;
import util. ItemTemplate;
/**
* Склад.
* @ author AtemB
*
*/
public class Store {
/**
* Сортувальник по ключах карти упаковки.
* @ author AtemB
*
*/
class MapKeysComparator implements Comparator lt; Container gt; {
private List lt; Integer gt; template;
public MapKeysComparator ( int index) {
this . template=templates. get (index);
}
@ Override
public int compare (Container c1, Container c2) {
return template. indexOf (c1. getId ()) - template. indexOf (c2. getId ());
}
}
/** упаковують об'єкти. */
private List lt; Item gt; items;
/** Контейнери. */
private List lt; Container gt; containers;
/** Генератор псевдовипадкових чисел. */
private Random r= new Random ();
/** Шари Парето. */
private List lt; List lt; Item gt; gt; paretoSet;
/** Карта упаковки. */
private SortedMap lt; Container, List lt; Item gt; gt; map;
/** Залишок. */
private List lt; Item gt; rest;
private int [] containersSequence;
private List lt; List lt; Integer gt; gt; templates;
public Store () {= new ArrayList lt; Container gt; ();= new ArrayList lt; Item gt; ();= new ArrayList lt; Item gt; ();
}
/**
* Створити контейнери.
* @ param containersNum Число контейнерів.
* @ param ct Шаблон контейнера.
* @ param maxVolume Обмеження за обсягом.
* @ param maxCargo Обмеження по вантажопідйомності.
*/
public void