问题描述
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();
}