我正在尝试优化一段比较列表元素的代码.
例如.
public void compare(Set<Record> firstSet, Set<Record> secondSet){
for(Record firstRecord : firstSet){
for(Record secondRecord : secondSet){
// comparing logic
}
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,套装中的记录数量会很高.
谢谢
谢卡尔
我需要非常有效地比较Clojure/Java中的两个映射,并返回由Java的.equals(..)确定的差异,其中nil/null等效于"not present".
即我正在寻找一种最有效的方式来编写如下函数:
(map-difference
{:a 1, :b nil, :c 2, :d 3}
{:a 1, :b "Hidden", :c 3, :e 5})
=> {:b nil, :c 2, :d 3, :e nil}
Run Code Online (Sandbox Code Playgroud)
我更喜欢不可变的Clojure映射作为输出,但如果性能提升很重要,Java映射也会很好.
对于它的价值,我的基本测试用例/行为期望是对于任何两个映射a和b,以下将是相等的(最多等于null ="Not present"):
a
(merge b (difference a b))
Run Code Online (Sandbox Code Playgroud)
实现这个的最佳方法是什么?