如何解决如何比较两个具有多个重复值的哈希表
Hashtable<Integer,String> List1= new Hashtable<>();
List1.put(1,"A");
List1.put(2,"A");
List1.put(3,"B");
List1.put(4,"C");
Hashtable<Integer,String> List2= new Hashtable<>();
List2.put(1,"C");
List2.put(2,"C");
List2.put(3,"A");
List2.put(4,"B");
我有这两个表,如何比较它们并以百分比显示它们的相等程度?
假设这是两个哈希表。
例如:List1
和 List2
具有 90% 的相同值。
解决方法
不太确定我是否理解正确,但这样的事情可能会解决您的问题:
public double calculateOverlapPercentage(Hashtable<Integer,String> list1,Hashtable<Integer,String> list2) {
if (list1 == null || list2 == null || list1.isEmpty()) {
return 0;
}
long overlapCount = list1.entrySet().stream().filter(l1 -> list2.containsValue(l1.getValue())).count();
return (double) overlapCount / list1.size();
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。