我有一个大学的项目,«创建一个双语词典,比较两个文本(第二个是第一个的翻译)。
有三种文本来测试我们的程序。小的,输出在不到1秒的时间内产生,中等45秒,大到85分钟。
NetBeans表示,最长的方法是在ArrayList上使用«retainAll»。有没有更快的方法?
编辑:一小段代码,我必须检查每个单词/翻译的相关索引。
double ens1= list2.size();
double ens2=test.size();
//intersection of the both list
list2.retainAll(test);
//size of the intersection
double long_fin=list2.size();
//correlation index
correlation=(long_fin/(Math.sqrt(ens1*ens2)));
答案 0 :(得分:2)
使用Set
代替List
。这大大减少了复杂性。
或者,您可以对两个列表进行排序,并在一个循环中实现retain-all。
(另外一条评论:使用int
代替double
- 这会让我们安全打字的开发人员紧张不安。)