望多多指正!
import java.util.List;
import java.util.Iterator;
public class JaccardSim {
public double sim;
public JaccardSim(){
}
public double getJac(List<String> str1,List<String> str2){
double d = 0;
int m = str1.size();
int n = str2.size();
if(m < 2 || n < 2){
if(str1.equals(str2))
d = 1.0;
}
else{
int commonNum = 0; //相同元素个数(交集)
Iterator<String> iter1 = str1.iterator(); //遍历集合的方法之一
//Iterator<String> iter2 = T.iterator();
while(iter1.hasNext()){
String obj = (String) iter1.next();
if(str2.contains(obj)){
commonNum++;
}
}
int mergeNum =m+n-commonNum; //并集元素个数
d = (double)commonNum/mergeNum;
}
return d;
}
public static void main(String[] args){
String s1="jordan james adc";
String s2="jordan james adv";
StringToList ct=new StringToList();
List<String> str1=ct.stringTolist(s1);
List<String> str2=ct.stringTolist(s2);
JaccardSim jc=new JaccardSim();
System.out.println(jc.getJac(str1,str2));
}
}