在Java中有效地比较两个列表<Object[]>
我有两个List<Object[]>
,我需要比较其中的值,并创建一个只有唯一值的最终列表
例:
List<Object[]> list1 has n rows of object list with 5 columns
[[val1,val2,val3,val4,val5],[val1_,val2_,val3_,val4_,val5_]]
List<Object[]> list2 has n rows of Object list with 4 columns
[[val3_,val4_,val5_,val6_],[val2,val3,val4,val5]]
list1
中Object
数组中第二列到第五列元素的组成可能与list2
中Object
数组中的元素匹配。当所有这些列都匹配时,不应在新的List
中重复该操作。或者,不使用新列表,我可以只更新list1
本身的内容。如果list2
有list1
没有的独特的东西,我将把它添加到列表中。不幸的是,我的程序的输出只会导致List<Object[]>
。有人能告诉我怎样才能有效地进行比较吗
# 1 楼答案
数组没有
equals
或hashcode
方法,但是List
有,所以可以使用List
作为HashMap
的键编写一个方法来生成一个
List<Object>
用作密钥:new ArrayList(array).subList(1,array.length)
new ArrayList(array)
然后:
map
现在包含所需的数组