如果我有两个不同的类(比如,个人类和商品类),我如何表示每个人对每种商品的个人需求(一个数字)?如果我初始化person类的10个示例,然后5个不同类型的good:每个人对每种商品都有自己的个人需求,但如果我只将good类初始化为一个单独的类(因此在本例中我们将有good类的5个示例),我如何为每个人的示例提供他们对5个good示例中的每一个的特定需求?我真的不知道如何用更清楚的语言问这个问题,希望我足够具体,你知道我想问什么。请回答,如果你有问题!
yvfmudvl1#
我可以想出几种简单的方法来实现它;哪一个更合适可能取决于您需要如何使用Person的商品需求。第一个想法是让每个Person包含一个Commodity的Map来计数,以表明这个人需要哪些商品,以及每种商品需要多少。
Person
Commodity
Map
import lombok.AllArgsConstructor; import lombok.EqualsAndHashCode; import lombok.Getter; @EqualsAndHashCode @AllArgsConstructor public class Commodity { @Getter private UUID id; @Getter private String name; }
import java.util.HashMap; import java.util.Map; import java.util.Optional; public class Person { private Map<Commodity, Integer> demands = new HashMap<>(); public void setDemand(Commodity commodity, Integer count) { demands.put(commodity, count); } public Optional<Integer> getDemand(Commodity commodity) { return Optional.ofNullable(demands.get(commodity)); } }
另一种选择可能更有意义,例如,如果你需要在模型中将Demand作为一个独立类来跟踪,那么Person可以有一组Demand,每个Demand引用一个Commodity * 和 * 一个计数。一个二个一个一个
Demand
1条答案
按热度按时间yvfmudvl1#
我可以想出几种简单的方法来实现它;哪一个更合适可能取决于您需要如何使用
Person
的商品需求。第一个想法是让每个
Person
包含一个Commodity
的Map
来计数,以表明这个人需要哪些商品,以及每种商品需要多少。另一种选择可能更有意义,例如,如果你需要在模型中将
Demand
作为一个独立类来跟踪,那么Person
可以有一组Demand
,每个Demand
引用一个Commodity
* 和 * 一个计数。一个二个一个一个