Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida no Ex. 9 da Aula 5 - Declare e use um ArrayList - É possível alterar valores de ArrayList sem usar o set(posicao, valor)?

Olá devs.

Como modificar as posições de um ArrayList sem usar o get(posicao, valor)? Tentei da seguinte maneira, mas sem êxito:

ArrayList<String> ss = new ArrayList<String>();
        ss.add("a");
        ss.add("b");
        ss.add("c");
        ss.add("d");
Iterator iter = ss.iterator();

        while(iter.hasNext()) {
            String atual = (String) iter.next();
            atual = "b";
        }
        for(String s:ss) System.out.println(s);
1 resposta
solução!

Thiago,

Diretamente de forma transparente, acredito que não tem jeito.

Talvez usando Reflection podemos conseguir ou no caso de criar uma nova lista organizar da forma desejada e reatribuir a variável inicial.

Algo parecido com isso:

public static void main(String[] args) {

List<String> ss = new ArrayList<String>();
        ss.add("a");
        ss.add("b");
        ss.add("c");
        ss.add("d");

        System.out.println("Original");
        for (String s : ss) {
            System.out.println(s);
        }

        Object[] meuArray = ss.toArray();
        ss = Arrays.asList((String) meuArray[3], (String) meuArray[2], (String) meuArray[1], (String) meuArray[0]);

        System.out.println("Nova");
        for (String s : ss) {
            System.out.println(s);
        }
}