java - 在 java 列表中合并相似对象的最佳方法是什么?

标签 java list arraylist compare

这是我的问题(简化):

假设我们有一个类:

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/

相关文章:

java - 不同编程语言的字符编码是否相同?

java - 当@Rule相互依赖时如何处理它们的排序

c++ - 列表迭代器错误 C++

C# 设计 - 如何在没有空接口(interface)的情况下将类和枚举分组到列表中?

python - 我如何在 Python 中同时多次 append 一个项目?

java - 确定 List<> 的通用参数

java - Java中如何将int转为long?

添加时java arraylist空指针异常

java - 如何在ArrayList集合中循环

java - 检查 arrayList 是否包含数组