Duvida ordenar numeros

6 respostas
shenn

Galera, estou com uma duvida estou conseguindo ordenar os numeros, ate ai tudo beem!

mas gostaria de colocar os numeros que eu ordenei no meu bean novamente, só que eles ordenados…

porem esta dando erro =/

segue meu codigo

public class ordenar {

	public static void main(String[] args) {
		
		Numeros numeros = new Numeros();
		numeros.setNum1("50");
		numeros.setNum2("40");
		numeros.setNum3("30");
		
		String[] valores = new String[3];
		valores[0] = numeros.getNum1();
		valores[1] = numeros.getNum2();
		valores[2] = numeros.getNum3();
		
		Arrays.sort(valores);
		
		for (String valor : valores){
			System.out.println(valor);
		}
	}
}

vllw =D

6 Respostas

wagnerfrancisco

Por que você não armazena o próprio array de valores dentro da classe Numeros?

Desta maneira, você vai ter que reatribuir após ordenar. Ou apenas atribuir depois de ordenar.

L

Qual o erro gerado?

Só uma dica, nome de classe deve sempre começar com letra maiúscula: Ordenar

shenn

wagnerfrancisco vo tentar fazer isso vllw =D

l.cestarolli Então, esse codigo que eu postei não dá nenhum erro, ele ordena perfeitamente…

porem, gostaria de armazenar esses numeros ordenadas na classe Numeros novamente para eu poder salvar no db…

CristianPalmaSola10

Se voce utilizar um array normal dentra da classe numeros depois de fazer o sort é so atribuir o resultado para esse array, é o mais facil para esse casso.

al.barbosa

shenn,

Não vejo outra forma de armazenar no bean a não ser armazenar um valor de cada vez (chamar o setNum1(), setNum2() e setNum3()). A nao ser que você utilize um Array dentro da classe Numero, como falou o wagnerfrancisco. Mas aí você terá que mudar a forma de salvar no banco de dados.
Tome cuidado se você quer os números em ordem crescente. Se o vetor for de String o Arrays.sort() irá ordenar em ordem alfabética.
Por exemplo, se você tiver os número 310,50 e 40, ele irá ordenar assim: 310, 40, 50! O 310 vem na frente do 40 em ordem alfabética.
No exemplo eu coloquei o vetor como Integer para evitar esse problema.

Numeros numeros = new Numeros();  
         numeros.setNum1("50");  
         numeros.setNum2("40");  
         numeros.setNum3("310");  
          
         Integer[] valores = new Integer[3];  
         valores[0] = Integer.parseInt(numeros.getNum1());  
         valores[1] = Integer.parseInt(numeros.getNum2());  
         valores[2] = Integer.parseInt(numeros.getNum3());  
           
         Arrays.sort(valores);  

         numeros.setNum1(String.valueOf(valores[0]));  
         numeros.setNum2(String.valueOf(valores[1]));  
         numeros.setNum3(String.valueOf(valores[2]));  

         System.out.println(numeros.getNum1());  
         System.out.println(numeros.getNum2());  
         System.out.println(numeros.getNum3());
L

Por que você tem que ter 3 métodos para adicionar os valores no vetor?

Eu faria um método único que adiciona itens nessa lista e depois faz o sort.

Criado 1 de agosto de 2012
Ultima resposta 1 de ago. de 2012
Respostas 6
Participantes 5