【发布时间】:2016-02-29 12:17:54
【问题描述】:
这是我们代码库中的一种常见模式,当将模型列表从(例如)Thing 映射到 MyModel 时:
List<MyModel> myModelList = new ArrayList<>();
for (Thing thing : things) {
MyModel myModel = new MyModel(thing.getId());
if (myModelList.contains(myModel)) {
myModel = myModelList.get(myModelList.indexOf(myModel));
} else {
myModel.setName(thing.getName());
myModelList.add(myModel);
}
myModel.setSomeQuantity(myModel.getSomeQuantity() + thing.getSomeQuantity());
}
(假设 MyModel 有 equals() 和 hashCode() 使用 id 来决定相等)
这可以通过一些不同的方式完成,您可以使用以 id 作为键的地图等。我们可以为它创建一个通用的帮助类,它可以在任何地方使用。
但我想知道的是,在某些 java、apache、spring、google 或其他库中,是否已经有一些帮助类或其他类型的构造以一种有效且干净的方式处理了所有这些问题?
【问题讨论】: