Advertisement
Guest User

Untitled

a guest
Nov 18th, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.40 KB | None | 0 0
  1. /**
  2. * Método que calcula e retorna o menor percurso em número de linhas entre as estações estacaoOrigem e estacaoDestino.
  3. * @param estacaoOrigem
  4. * @param estacaoDestino
  5. * @return percurso
  6. */
  7. public static Percurso a6_percursoMenorNumLinhas(Estacao estacaoOrigem, Estacao estacaoDestino) {
  8.  
  9. Percurso percurso = new Percurso();
  10. percurso.setEstacaoOrigem(estacaoOrigem);
  11. percurso.setEstacaoDestino(estacaoDestino);
  12.  
  13. LinkedList<Estacao> caminho = new LinkedList<>();
  14. ArrayList<LinkedList<Estacao>> paths = new ArrayList<>();
  15.  
  16. //METODO AQUI
  17.  
  18. List<Pair<Estacao, String>> percursoLinha = new ArrayList<>();
  19. List<Pair<Estacao, Tempo>> percursoTempo = new ArrayList<>();
  20.  
  21. percursoLinha.add(new Pair<>(estacaoOrigem, Metro.edgeLessWeight(estacaoOrigem, caminho.get(1)).getElement()));
  22. percursoTempo.add(new Pair<>(estacaoOrigem, TEMPO_POR_OMISSAO));
  23.  
  24. int minutos = 0;
  25. for (int i = 1; i < caminho.size() - 1; i++) {
  26. minutos = (int) Metro.edgeLessWeight(caminho.get(i - 1), caminho.get(i)).getWeight();
  27. minutos = minutos + percursoTempo.get(i - 1).getValue().getMinutos();
  28. Tempo tempo = new Tempo(percursoTempo.get(i - 1).getValue().getHoras(), minutos, percursoTempo.get(i - 1).getValue().getSegundos());
  29. percursoTempo.add(new Pair<>(caminho.get(i), tempo));
  30.  
  31. percursoLinha.add(new Pair<>(caminho.get(i), Metro.edgeLessWeight(caminho.get(i), caminho.get(i + 1)).getElement()));
  32. }
  33.  
  34. percursoLinha.add(new Pair<>(caminho.get(caminho.size() - 1), percursoLinha.get(caminho.size() - 2).getValue()));
  35. Tempo instanteFinal = new Tempo(percursoTempo.get(caminho.size() - 2).getValue().getHoras(), percursoTempo.get(caminho.size() - 2).getValue().getMinutos(), percursoTempo.get(caminho.size() - 2).getValue().getSegundos());
  36. instanteFinal.adicionarMinutos((int) Metro.edgeLessWeight(caminho.get(caminho.size() - 2), caminho.get(caminho.size() - 1)).getWeight());
  37. percursoTempo.add(new Pair<>(caminho.get(caminho.size() - 1), instanteFinal));
  38.  
  39. percurso.setInstanteFinal(instanteFinal);
  40. percurso.setPercursoLinhas(percursoLinha);
  41. percurso.setPercursoTempo(percursoTempo);
  42.  
  43. return percurso;
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement