Atualizar Valores ArrayList

10 respostas
Sergio_Junior

Boa tarde,
estou colocando um arrayList em ordem através do “Collections.sort”… Porém em seguida ja preciso utilizar essa lista atualizada. Mas ela não atualiza a principio, só quando sai do metodo e entra de novo, ai ela ja esta atualizada. Alguem sabe o motivo? Ou como resolver isso?

10 Respostas

igomes

Posta o código aewww, deve estar faltando alguma atribuição

D

Posta o código, você pode estar colocando o comando no lugar errado …

Sergio_Junior
Component[] cmpPanel = maeprincipal.getComponents();
for (int i = 0; i < arrayMesas.size() + 1; i++) {   //esse arrayMesas é  pra ter controle de item ja adicionados.
    if (!arrayMesasControle.contains(cmpPanel[i].getName())) {   //aqui ele verifica se o item não existe
                        
                        arrayControle.add(cmpPanel[i]);
                        arrayMesasControle.add(cmpPanel[i].getName());
                        
                    }
                    
                    Collections.sort(arrayMesasControle);
                    ordenaMesas((JPanel) cmpPanel[i], arrayMesasControle.indexOf(cmpPanel[i].getName())); // Esse metodo serve pra ordenar as mesas de acordo com o indice delas comparando o nome na lista, para ficarem em ordem.
                }
}
emerson_mendes1

Acho que vc ta fazendo a ordenação no lugar errado, não? Teria que ser fora do for.

Sergio_Junior

Pior que não Emerson… Pq se eu tentar ordenar fora do for, ele fara a ordenação só depois que eu precisar usar a ordenação.

D

Crie as listas (array?) como atributos da classe

final List<String> arrayMesasControle = new LinkedList<>(); // N sei se é String
final List<Component> arrayControle = new LinkedList<>(); // N sei se é Component
// O final antes impede q a lista seja trocada
//  se precisar trocar a lista, entao use o clear e o addAll

Antes do loop:

arrayMesasControle.clear();
arrayControle.clear();
Sergio_Junior

Bom, então… consegui fazer dar certo, fiz um metodo fora do laço porem dentro desse novo metodo tbm há um laço, entretando dessa vez deu certo… agora estou com outro problema… os nomes que estou tentando organizar são “mesa1”, “mesa2”… “mesa10”… “mesa21”… etc. até o 28
porem, quando ele organiza… esta fazendo da seguinte forma

mesa1, mesa10, mesa2, mesa20…
no qual o certo deveria ser
mesa1, mesa2, mesa3… mesa10, mesa11, mesa20, mesa23

D

Mais facil seria trocar o nome das mesas para mesa01, mesa02, …

Paulo_Carvalho1

Pelo que entendi esse ultimo metodo esta considerando e ordenando pela primeira numero, e nao pelo numero em completo

Sergio_Junior

resolvi trocando o nome para 1, 2, 3, 4… porem só no array, pois não da pra colocar nome do componente iniciando por numeros.

Criado 31 de março de 2016
Ultima resposta 2 de abr. de 2016
Respostas 10
Participantes 6