Dúvida simples em Vetores

Boa tarde, pessoal. Vim pedir a ajuda de vocês no seguinte quesito: como faço pra armazenar os pares e impares de modo que na hora de imprimir não fique os “0”.

import java.util.*;

public class Exer11 {

public static void main(String[] args) {

	Scanner sc = new Scanner(System.in);

	int[] vetorA = new int[10];
	int[] par = new int[10];
	int[] impar = new int[10];
	
	for (int i = 0; i < vetorA.length; i++) {
		System.out.println("Informe um valor pra posição " + (i + 1) + " :");
		vetorA[i] = sc.nextInt();
	}
	
	for (int i = 0; i < vetorA.length; i++) {
		if((vetorA[i] % 2) == 0) {
			par[i] = vetorA[i];
		}
		else {
			impar[i] = vetorA[i];
		}
	}
	
	System.out.println("Vetores pares: ");
	for (int i = 0; i < par.length; i++) {
		System.out.print(par[i] + " ");
	}
	System.out.println();
	System.out.println("Vetores ímpares: ");
	for (int i = 0; i < impar.length; i++) {
		System.out.print(impar[i] + " ");
	}
}

}

Exemplo:

Ao informar os números {1, 2, 3 ,4 ,5 ,6, 7, 8, 9 ,10}, o código é imprimido da seguinte maneira:

Vetores pares:
0 2 0 4 0 6 0 8 0 10
Vetores ímpares:
1 0 3 0 5 0 7 0 9 0

Poderia fazer assim:

System.out.println("Vetores pares: ");
for (int i = 0; i < par.length; i++) {
	if(par[i] != 0)
		System.out.print(par[i] + " ");
}
System.out.println();
System.out.println("Vetores ímpares: ");
for (int i = 0; i < impar.length; i++) {
	if(impar[i] != 0)
		System.out.print(impar[i] + " ");
}

Ou obter o valor dos vetores:

contadorPar = 0;

for (int i = 0; i < vetorA.length; i++) {
	if((vetorA[i] % 2) == 0) {
		contadorPar++;
	}
}

int[] par = new int[vetorA.length - contadorPar];
int[] impar = new int[vetorA.length -  par.length];


for (int i = 0; i < vetorA.length; i++) {
	if((vetorA[i] % 2) == 0) {
		par[i] = vetorA[i];
	}
	else {
		impar[i] = vetorA[i];
	}
}
1 curtida

Muito obrigado, mano!