📄 swoosh.java
字号:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package swoosh;import java.util.ArrayList;import java.util.Arrays;import uk.ac.shef.wit.simmetrics.similaritymetrics.*;/** * * @author guilherme */public class swoosh { public ArrayList list1= new ArrayList(); public ArrayList list2= new ArrayList(); public swoosh(ArrayList list) { this.list1=list; } public void swoosh_execuçao() { // ArrayList list2=new ArrayList(); int i=0; boolean teste=false; // System.out.println("lista nova"+ list_copy.get(0) +" " +list1.get(0)); while((list1.size())!=0 ) { if(list2.isEmpty()) { list2.add((ArrayList) list1.get(0)); list1.remove(0); } teste=compare(0,(ArrayList)list1.get(0)); if(teste) i=0; else { list2.add((ArrayList)list1.get(0)); list1.remove(0); i=0; } System.out.println("******lista1****"); System.out.println(list1); System.out.println("******lista2****"); System.out.println(list2+"\n\n"); } System.out.println("********************\n lista finall" + list2); } public boolean compare(int pos, ArrayList linha_list1) { JaroWinkler jarowinkler= new JaroWinkler(); float similarity=0; // System.out.println("imprimir listas comparaçao : " + list1 + " lista 2" + list2); for(int i=0;i<list2.size();i++) { ArrayList linha_list2 = (ArrayList)list2.get(i); if(linha_list2.get(1).equals((String)linha_list1.get(1))) { remove_linha(pos,i,linha_list1,linha_list2); return true ; } similarity=jarowinkler.getSimilarity((String)linha_list2.get(1),(String)linha_list1.get(1));//verifica se os nomes sao iguais if (similarity>0.8) { int valor1=Integer.parseInt((String)linha_list2.get(2)); int valor2=Integer.parseInt((String)linha_list1.get(2)); if((100*(valor1-valor2)/valor1)<20) { similarity=jarowinkler.getSimilarity((String)linha_list2.get(3),(String)linha_list1.get(3));//verifica se os nomes sao iguais if(similarity>0.8) { remove_linha(pos,i,linha_list1,linha_list2); return true; } } } } // System.out.println("valor é "+ j.getSimilarity("abc", "bbc")); return false; } public void remove_linha(int pos_global,int pos_local,ArrayList linha_list1,ArrayList linha_list2) { ArrayList list_aux; list_aux=new ArrayList(); list_aux.add(0,(String)linha_list2.get(0)+(String)linha_list1.get(0)); list_aux.add(1,(String)(ordenacao((String)linha_list2.get(1),(String)linha_list1.get(1)))); list_aux.add(2,(String)linha_list1.get(2)); list_aux.add(3,(String)(ordenacao((String)linha_list2.get(3),(String)linha_list1.get(3)))); list1.remove(pos_global); list2.remove(pos_local); list1.add(list_aux); } public String ordenacao(String a, String b) { String[] array = new String[2]; if(a.isEmpty()) return(b); if(b.isEmpty()) return(a); array[0]=(String )a; array[1]=(String )b; Arrays.sort(array); return(array[0]); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -