Мне нужно упаковать 3000 различных тележек, каждая корзина имеет налоги, такие как 7%, 15% и/или 19%. Я хранил налоги в Byte
, Packets
в Packet
. Если 1000 Пакетов имеют одинаковые налоги (например, 7% и 19%), Пакет должен переуступать набор одинаковых налогов (с кодом cartTaxes
).Cache TreeSet для статистики
SortedSet<SortedSet<Byte>> cachedTaxes = new TreeSet();
Set<Packet> packets = new TreeSet<Packet>();
for (Cart cart: carts) {
SortedSet<Byte> cartTaxes = new TreeSet(cart.getTaxesAllItems());
Packet p = new Packet();
// This line is bad because there are 3000 similar TreeSets:
// p.setTaxes(cartTaxes);
// Instead i like to cache same taxes to same TreeSets
// Insert if not exists....
if (!cachedTaxes.contains(cartTaxes)){
p.setTaxes(cartTaxes);
// ... and cache for others!
cachedTaxes.add(cartTaxes);
} else {
// Use already instanticated, cached, value
p.setTaxes(cachedTaxes.get(cartTaxes)); <<-----ERROR: function get unknown.
}
packets.add(p);
}
Любая идея?
Hashmap? У меня никогда не было значений «null» или «null». –
@PeterRader, в чем ваш вопрос или сомнения? –
Просто подумайте, что 'Hashtable' будет лучше соответствовать. К несчастью, его Java7. –