这是我的问题(简化):
假设我们有一个类:
public class MyClass{
String name;
Double amount;
String otherAttribute;
}
还有一个List<MyClass> myList
假设我们有 myList 中的 2 个元素。假设对象1和对象2
我想做的是:
if (object1.name.equals(object2.name){
//add amount of object2 to object1
//remove object 2 from the list
}
考虑到我有一个很大的列表(可能有 100 个元素),我想找到最好且消耗更少的方法来完成我想要的事情。
你有什么建议?
<小时/>编辑:
是的,100 个项目并不大,但我会针对许多不同大小的列表多次调用此方法(合并相似的对象)。因此,我希望找到最佳实践。
不幸的是,我无法重写 MyClass 的 equals 或 hashCode 方法(客户要求)
最佳答案
我会将对象添加到 HashMap,其中 name
是键,MyClass
是要存储的值。循环遍历列表中的每个对象以将它们添加到 map 中。如果名称不在 map 中,只需添加名称、对象对。如果它已经在 map 中,则将该数量添加到已存储的对象中。循环完成后,从 map 中提取对象。
关于java - 在 java 列表中合并相似对象的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28611876/