Reorder arraylist

1 resposta
G

Boa Noite,

Queria fazer o seguinte, alterar determinada posição no array, porém da seguinte forma:

array original - 1 2 3 4 5

array alterado - 1 5 2 3 4

ArrayList<String> teste = new ArrayList<String>();

        teste.add("1");
        teste.add("2");
        teste.add("3");
        teste.add("4");
        teste.add("5");

        System.out.println("------------------Array------------------");
        for (int i = 0; i < teste.size(); i++) {
            System.out.println(teste.get(i));
        }
        System.out.println("------------------------------------------");

        int origem = 4;  // 4
        int destino = 2; // 0

        ArrayList<String> novo = new ArrayList<String>();

        if (origem > destino) {
            for (int i = 0; i < teste.size(); i++) {
                if (i == destino) {
                    novo.add(teste.get(origem));
                } else if (i == origem) {
                    novo.add(teste.get(destino));
                } else if (i > origem) {
                    novo.add(teste.get(i));
                } else {
//                    try {
//                        novo.add(teste.get(i - 1));
//                    } catch (Exception e) {
                    novo.add(teste.get(i));
//                    }
                }
            }
        } else {
            for (int i = 0; i < teste.size(); i++) {
                if (i == destino) {
                    novo.add(teste.get(origem));
                } else if (i > destino) {
                    novo.add(teste.get(i));
                } else {
                    novo.add(teste.get(i + 1));
                }
            }
        }

        System.out.println("\n------------- -Array Alterado-------------");
        for (int i = 0; i < novo.size(); i++) {
            System.out.println(novo.get(i));
        }
        System.out.println("------------------------------------------");

Alguém me pode dar uma dica?

Obrigado

1 Resposta

ViniGodoy

E qual foi a lógica utilizada para alterar o array? Simplesmente quer retirar um elemento da última posição e coloca-lo na segunda?

Se for, creio que seja só fazer isso:
List&lt;String&gt; teste = new ArrayList&lt;String&gt;(); 
teste.add("1");  
teste.add("2");  
teste.add("3");  
teste.add("4");  
teste.add("5");

String ultimo = teste.get(teste.size()-1);
teste.remove(teste.size()-1);
teste.add(1,ultimo);

Não testei no Eclipse, mas se não funcionar, o código que funciona é bem perto disso.

Criado 2 de fevereiro de 2012
Ultima resposta 2 de fev. de 2012
Respostas 1
Participantes 2