Como movimento elementos dentro de um ArrayList

19/07/2017

0

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

Responder

Posts

10/08/2017

Estevão Dias

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.
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar