Como movimento elementos dentro de um ArrayList

Java

19/07/2017

Tenho um ArrayList e gostaria de saber como poderia movimentar-los uma posição a direita, fiz um código porém não está tendo a saída desejada
String alfabeto;
List<Character> letras ;


public Teste(){

letras = new ArrayList<Character>();
alfabeto = ("abcdefghijklmnopqrstuvwxyz");
}

public void trocaPosicaoAlfabeto(){

for(int i=0; i<alfabeto.length(); i++){
letras.add(alfabeto.charAt(i));
}

char aux;

for(int i=1; i<letras.size()-2; i++){
aux = letras.get(i-1);
letras.set(i, aux);
}
alfabeto="";
for(int i=0; i<letras.size(); i++){
alfabeto +=letras.get(i);
}

System.out.println(alfabeto);
}

A saída é: aaaaaaaaaaaaaaaaaaaaaaaayz
e o que desejo é: zabcdefghijklmnopqrstuvwxy
Victor Santos

Victor Santos

Curtidas 0

Respostas

Estevão Dias

Estevão Dias

19/07/2017

Olá Victor, tudo bem?

O problema é que a primeira letra em letras é a, você pega esse valor e joga no próximo endereço repetidamente, por isso tudo no final é a letra a, com exceção das duas últimas posições que fogem do intervalo de endereços do array.

for (int i = 1; i < (letras.size() - 2); i++) {
            aux = letras.get(i - 1);

            System.out.println(i);

            letras.set(i, aux);
}


Sugiro que pra acertar a lógica você vá depurando o valor de cada variável ao passo em que o algoritmo avança, assim poderá encontrar o problema com maior facilidade.

Um abraço.
GOSTEI 0
POSTAR