我有一个应用程序,它将某种对象(例如 type MyClass
)的值存储到许多不同的Map<String, MyClass>
映射中。
该应用程序需要
- 将不同映射中的对象引用获取到单个集合(联合)
- 对单个集合进行排序(以应用顺序)
- 计算连续集合之间的差异(用于检测变化)
- 从每个集合的所有对象中产生一个哈希值
(统一)集合中对象的顺序很重要。
为了实现排序,对象(映射值)使用addAll()
, in放置ArrayList
并通过 排序Collections.sort()
。顺序定义在 中,它通过比较它封装的一些字符串字段(比如, )MyClass
来实现接口。Comparator
myField
排序完成后,会生成来自所有对象的唯一签名。对于具有相同 值的对象,此签名需要相同,myField
目前通过字符串连接(使用toLowerCase()
和 a StringBuilder
)然后对结果字符串进行散列处理,该字符串可能有几千个字符长。
有没有更有效的方法来做(任何或全部)上述(复制、排序、比较和散列)?