Carcleo 4 Denunciar post Postado Outubro 17, 2014 Pessoal, Tenho um ArrayList de inteiros com duas posições. A primeira posição me retorna [1, 3, 3, 2] E a segunda me retorna: [3, 1, 1, 4] Preciso comparar se a cada 2 elementos da volta de cima tem comparação com outros 2 elementos da volta de baixo. Exemplo: 1,3 da volta de cima vou comparar com: 1-3 <=> 3,11-3 <=> 1,4 Note que 1-3 e 3-1 para efeito desse exercício são a mesma coisa (não direcionado) O que eu preciso fazer nesse caso é retornar o array da forma abaixo: {1-3, 3-2, 1-4} Excluindo a repetição. Podem me ajudar fazendo favor? Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Outubro 17, 2014 Na verdade não são duas posições: São dois objetos com o mesmo nome! Veja a geração: import java.util.ArrayList; import java.io.File; import java.io.FileWriter; import java.io.BufferedWriter; import java.io.IOException; public class Principal { public static void main (String args[]) { CriaListas listaPossivel = new CriaListas("arquivoPossiveis.txt"); CriaListas listaObrigatorio = new CriaListas("arquivoObrigatorios.txt"); ArrayList<Ligacoes> listaDePossiveis = listaPossivel.populaArrayList(); ArrayList<Ligacoes> listaDeObrigatorios = listaObrigatorio.populaArrayList(); try { File arquivo = new File("resp.txt"); FileWriter fw = new FileWriter(arquivo); fw.write("{"); for (int i = 0; i < listaDeObrigatorios.size(); i++) { int pontoOA = listaDeObrigatorios.get(i).getPontoA(); int pontoOB = listaDeObrigatorios.get(i).getPontoB(); int pontoPA; int pontoPB; int pontoPDistanciaAB = 0; boolean existe=false; for (int j = 0; j < listaDePossiveis.size(); j++) { pontoPA = listaDePossiveis.get(j).getPontoA(); pontoPB = listaDePossiveis.get(j).getPontoB(); pontoPDistanciaAB = listaDePossiveis.get(j).getDistanciaAB(); if( ( (pontoOA == pontoPA) || (pontoOA == pontoPB) )&& ( (pontoOB == pontoPA) || (pontoOB == pontoPB) ) ) { existe=true; } } if(existe) { //O ponto escolhido esta na ArrayList Possíveis. //Então, mostra a distancia. BuscaVizinho vizinho = new BuscaVizinho(pontoOA, pontoOB, listaDePossiveis, pontoPDistanciaAB); ArrayList<Integer> vizinhoNo = vizinho.buscarVizinho(); MenorCaminho menorCaminho = new MenorCaminho(pontoOA, pontoOB, listaDePossiveis, vizinhoNo, pontoPDistanciaAB); ArrayList<Integer> menorCaminhoAL = menorCaminho.buscaMenorCaminho(); //AQUI menorCaminhoAl funciona System.out.println("AQUI TEMOS O MELHOR CAMINHO COM AS COMBINAÇÕES REPETIDAS PARA ESSE OBJETO"); System.out.println(menorCaminhoAL); System.out.println(); RemoveRepetidas listaSemRepeticao = new RemoveRepetidas(menorCaminhoAL); ArrayList<Integer> listaLimpa = listaSemRepeticao.removeRepetida(); for (int p = 0; p < listaLimpa.size(); p++) { fw.write(menorCaminhoAL.get(p).toString()+"-"); } fw.write(","); //AQUI menorCaminhoAl vem errado por ser gerado dois objetos System.out.println("DESCULPA, NÃO CONSEGUI FAZER A EXCLUSÃO APENAS DE UMA COMBINAÇÃO DUPLICADA. MAS TENTEI!"); System.out.println(listaLimpa); System.out.println(); System.out.println(); } } fw.write("}"); fw.flush(); fw.close(); } catch (IOException e) { System.err.printf("Erro na abertura do arquivo: %s.\n", e.getMessage()); } } } Compartilhar este post Link para o post Compartilhar em outros sites