[英]Java : check if two lists of map have the same elements
我有两个这样的列表(Map<String,Object> 列表):
list1 : [("name","Tom"),("age","35"),("score",99.1)], [("name","Mary"),("age","20"),("score",62.2)]
list1 : [("name","Mary"),("age","20"),("score",62.6)], [("name","Tom"),("age","35"),("score",98.9)]
我想验证两个列表是否相同。 但是当“分数”小于1时,我应该看成是一样的。 例如99.1和98.9应该算是同一个分数。
两个列表是无序的。
我怎样才能在 O(n) 中实现这一点?
我怎样才能在 O(n) 中实现这一点?
数学上不可能。
一些注意事项:
Person
。Map<String, Object>
而不是Person
,对这些进行排序比需要的更复杂。另一种选择是将所有数据直接插入到一个自排序结构中,例如,它可以是一个 TreeMap,使用某人的姓名作为键。
检查任何两个给定分数是否在彼此的一个点内是微不足道的: if (Math.abs(scoreA - scoreB) < 1)
会这样做。
取决于用于分数的变量类型,但本质上是相同的。 如果你正在使用 float,你应该使用 %.0f 或者如果你正在使用 double,你应该使用 %.0d。 我希望是这样并且它有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.