Ordenacao de numeros

Bom dia galera

to com a seguinte duvida, preciso fazer um programa que ordena os numeros e apos retira os numero iguais, consegui fazer a ordenaçao utilizando o metodo bolha, mas agora para retirar os numeros iguais nao esta funcionando, pq se o numero for igual ele deixa um espaço vazio no vetor, alguem pode me dar uma dica ou me ajudar a resolver esse problema?

import javax.swing.JOptionPane;

public class ordenacao{
	public static void main (String args[]){

		int v[] = new int[10];
		int ordena[] = new int[10];
		String vetor[] = new String[10];
		int aux,j,i;//metodo bolha
		int cont=0; //contar quantos numeros estavao repetidos
		
		//escrita de numeros
		for (i=0;i<10;i++){
			vetor[i] = JOptionPane.showInputDialog("Digite um numero: ");
			v[i] = Integer.parseInt(vetor[i]); 
		}	
		//ordenaçao
		for(i=0;i<9;i++){
			for (j=0;j<9;j++){
				if (v[j]>v[j+1]){
					aux = v[j];
					v[j]= v[j+1];
					v[j+1] = aux;	
				}	//fim do if	
			}	//fim do for 2
		}//fim do for
		
		//inicializar a ordenacao
		ordena[0] = v[0];
		
		//retirada de numero iguais
		for (i=1;i<10;i++){
			if(v[i] == ordena[i-1] ){
				cont++;
			}			//consertar esse metodo, desse jeito ele deixa espaço vazio no vetor
			else{
			ordena[i]= v[i];
			}
		}
		
		
		//mostrar numeros para o usuario
		for (i=0;i<10-cont;i++){
			JOptionPane.showMessageDialog(null,"\n " +ordena[i]);
		}
		
	
		
	}//fim do main
		
}//fim da classe

Seria extremamente mais simples vc colocar seus número em um treeSet, ele já remove os elementos repetidos, e mante os elementos na ‘ordem natural’

[code] TreeSet s = new TreeSet();
for (int i=0;i<10;i++){
Integer input = Integer.valueOf(JOptionPane.showInputDialog("Digite um numero: "));
s.add(input);
}

	for (Iterator iterator = s.iterator(); iterator.hasNext();) {
		System.out.println((Integer) iterator.next()); ;
	}

[/code]

[quote=cristian_clever]Seria extremamente mais simples vc colocar seus número em um treeSet, ele já remove os elementos repetidos, e mante os elementos na ‘ordem natural’

[code] TreeSet s = new TreeSet();
for (int i=0;i<10;i++){
Integer input = Integer.valueOf(JOptionPane.showInputDialog("Digite um numero: "));
s.add(input);
}

	for (Iterator iterator = s.iterator(); iterator.hasNext();) {
		System.out.println((Integer) iterator.next()); ;
	}

[/code][/quote]

PS … ele pediu metodo bolha atribuindo em outro vetor ,
ou seja basta ele alimentar o vetor ordenação fazendo o seguinte .

 Arrays.sort(vetor);

depois ele faria um for verificando se o numero corrente eh igual o numero anterior , se nao for adicionar ao vetor ordenação so isto =) , lembrando utilizei metodos staticos da classe Collections.

Use iterator pra percorrer e remover elementos da sua lista.
De uma olhada aqui:
http://www.guj.com.br/posts/list/48075.java

Acredito que o objetivo do exercicio que ele está fazendo é justamente criar e entender métodos de ordenação.

Creio q este seja o objetivo dele , porem usar interator , ou um arraylist nao seria a necessidade dele .

olha vlw pelas dicas mas ainda nao estou entendendo direito, sou muito novato nessa area ainda

tipo a ordenaçao eu consigo fazer de boa (metodo bolha)

agora na hora de mostrar para o usuario eu nao consigo retirar os elementos iguais da lista, eu estava querendo usando apenas logica sem nenhum tipode condiçao diferente, eu tentei usando um for mas na hora que aparece um elemento repetido ele preenche o campo com zero, preciso fazer esse campo desaparecer e aparecer apenas os numero ordenados retirando os repetidos.

[quote=wagner.wtj]Bom dia galera

to com a seguinte duvida, preciso fazer um programa que ordena os numeros e apos retira os numero iguais, consegui fazer a ordenaçao utilizando o metodo bolha, mas agora para retirar os numeros iguais nao esta funcionando, pq se o numero for igual ele deixa um espaço vazio no vetor, alguem pode me dar uma dica ou me ajudar a resolver esse problema?
[/quote]

O problema é que vc está usando arrays. Utilize um Set (como HashSet) para colocar os numeros ( o set não aceita repetidos,portanto
vc ganha um filtro grátis) . Depois copie para um ArrayList e ordene com Collections.sort().

Não utilize arrays, pela sua saude.

[quote=sergiotaborda][quote=wagner.wtj]Bom dia galera

to com a seguinte duvida, preciso fazer um programa que ordena os numeros e apos retira os numero iguais, consegui fazer a ordenaçao utilizando o metodo bolha, mas agora para retirar os numeros iguais nao esta funcionando, pq se o numero for igual ele deixa um espaço vazio no vetor, alguem pode me dar uma dica ou me ajudar a resolver esse problema?
[/quote]

O problema é que vc está usando arrays. Utilize um Set (como HashSet) para colocar os numeros ( o set não aceita repetidos,portanto
vc ganha um filtro grátis) . Depois copie para um ArrayList e ordene com Collections.sort().

Não utilize arrays, pela sua saude.[/quote]
Como ele esta iniciando , ele vai passar por arrays rsrs , ou seja ele vai apanhar um pouco antes de conseguir usar o de bom da API =) .
Bom estudo .

Bem, pelo que vi é um trabalho escolar, ou algo do tipo.
Se você não puder usar as belezas do JAVA, uma alternativa para seu caso:

1 - Faz um loop com o tamanho do Array,que já está ordenado, ou no momento de ordenar.
2 - Vai copiando elemento a elemento em outro array aux
3 - A cada cópia de elemento do array ordenado para o array aux, você testa se existe esse elemento a ser copiado no aux, percorrendo todo o array aux e comparando os elementos. Caso algum seja igual, não insere no aux, do contrário, insere.

É bem feio fazer isso, pois no java temos estruturas bem mais inteligentes, e que “cuidam” disso pra você, mas caso tenha mesmo que ser feito com arrays, acho q essa é uma solução.

ps: eu poderia postar o código aqui pra você de como ficaria, mas como é um exercício, prefiro deixar pra você pensar um pouquinho.! heheh

Pelo menos, espero que ajude.