Trocar posições de um vetor

A situação é a seguinte estou tentando pegar um vetor e substituir os valores negativos por 0 e deixar nas ultimas posições.
porem não consigo colocar os números 0 ao final do vetor;;;
sempre que tenho uma solução ele estoura meu array.

Exemplo:
Entrada: [1 -2 3 4 -5 6 7 8 9 10]
Saída: [1 3 4 6 7 8 9 10 0 0]

import javax.swing.JOptionPane;


public class Ex3 {

	
	public static void main(String[] args) {
		
		int vetor[] = {1,-2,3,4,-5,6,7,8,9,10};
		int vetorMod [] = new int [10];
		
		for(int i=0;i<vetor.length;i++){
			if(vetor[i]<0){
				vetorMod[i] = 0;	
			}
			if(vetor[i]>0){				
				vetorMod[i] = vetor[i];
			//System.out.print(vetorMod[i]+" ");
			}
		}	
		
		
		for(int i = 0 ;i<10;i++){
			if(vetorMod[i]==0){
				//vetorMod[i] = vetorMod[i-1];
			}
			System.out.print(vetorMod[i]+" ");
		}
		
		
	}

}

desde já obrigado.

Creio que isso resolva. Tah meio complicado, mas acho que da pra voce entender.

[code]public class Ex3 {
public static void main(String[] args) {
int vetor[] = {-1,-2,3,4,-5,6,7,8,9,-10};
int vetorMod [] = new int [10];
int vetorOrd [] = new int [10];
int i, j=0, numZeros=0;

    for(i=0; i<vetor.length; i++) {
        if(vetor[i]<0){  
            vetorMod[i] = 0;      
        }
        else {
            vetorMod[i] = vetor[i];
        }
    }
    
    System.out.print("Vetor Mod: ");
    for(i=0; i<vetorMod.length; i++) {
        System.out.print(vetorMod[i]+" ");
    }
    
    System.out.println();
    
    for(i=0; i<vetorMod.length; i++) {  
        if(vetorMod[i] == 0)
            numZeros++;
    }
    
    System.out.println("Numero de zeros: "+numZeros);
    
    for(i=0; i<vetorMod.length; i++) {  
        if(vetorMod[i] != 0){
            vetorOrd[j] = vetorMod[i];
            j++;
        }
    }
    for(i=j; i<vetorMod.length; i++) {  
        vetorOrd[i] = 0;
    }
    
    System.out.print("Vetor Ordenado: ");
    for(i=0; i<vetorOrd.length; i++) {
        System.out.print(vetorOrd[i]+" ");
    }
}

} [/code]

Cara esta também é uma solução só que com menos código.
por default o array tem seus elementos com valores padrões ,
então basta somente adicionar os valores positivos no vectoMod que os elementos não atribuído terão seus valores default
no caso de int será o valor zero vejo o código abaixo.

public class Ex3 {  
    
    public static void main(String[] args) {  
       int vetor[] = {1,-2,3,4,-5,6,7,8,9,10};  
        int vetorMod [] = new int [10];  
          
        for(int i=0, e = 0;i&lt;vetor.length;i++){               
            if(vetor[i]&gt;0){                
                vetorMod[e] = vetor[i]; 
                e++;
            }  
        } 
          
        for(int i = 0 ;i&lt;10;i++){ 
            System.out.print(vetorMod[i]+&quot; &quot;);  
        } 
        
    }
  
}

Existem vários tipos de algoritmos no google para ordenação, é bom dar uma olhada
pois quando a gente precisa fazer isso, já está lá prontinho para ser usado.

Ao contrário perde-se muito tempo reinventando a roda.

Abraço.