我使用HashSet,我需要修改一个对象的ID,但它改变了hashcode并破坏了HashSet和hashCode()方法的规则.
什么是最佳解决方案:从Set中删除对象并使用新ID添加对象,或者在Set中的每个对象中保留哈希代码(例如,在构造函数中生成),还是有其他方法可以解决此问题?
感谢帮助.
更新:我犯了错误:在对象中保留哈希代码很糟糕,因为在这种情况下,相等的对象可以有不同的哈希代码.
我想知道编写方法的最佳实践是什么,该方法至少需要三个相同类型的参数.问题是你可以在使用这种方法时混淆参数.例如
method(int userId, int productId, int weight, int price)
Run Code Online (Sandbox Code Playgroud)
我看到的唯一解决方案是使用一些holder类(可能使用了builder模式)并将其作为方法参数传递.