Você tem que ter um contador para saber em qual posição de vetorPar deve ir o número:
int[] vetor = new int[] { 1, 2, 3, 4, 5 };
int[] vetorPar = new int[vetor.length];
int cont = 0; // posição no vetorPar
for (int i = 0; i < vetor.length; i++) {
if ((vetor[i] % 2) == 0) {
vetorPar[cont] = vetor[i]; // adiciona no vetorPar
cont++; // vai para a próxima posição
}
}
Também inicializei vetorPar com new int[vetor.length] (o mesmo tamanho de vetor), já que ele vai no máximo ter a mesma quantidade de elementos de vetor (se todos forem pares, por exemplo).
Como arrays têm tamanho fixo, no exemplo acima somente 2 números pares foram colocados em vetorPar (ficaram 3 posições “sobrando”), então para mostrar os pares eu não posso ir até vetorPar.length, tenho que ir apenas até a quantidade de pares que encontrei (por exemplo, se eu quisesse imprimir os pares):
System.out.println("Os númeeros pares são:");
for (int i = 0; i < cont; i++) {
System.out.println(vetorPar[i]);
}
E só pra constar, você também pode usar o enhanced for para iterar por vetor:
int[] vetor = new int[] { 1, 2, 3, 4, 5 };
int[] vetorPar = new int[vetor.length];
int cont = 0;
for (int n : vetor) { // usando enhanced for
if (n % 2 == 0) {
vetorPar[cont] = n;
cont++;
}
}
Só não daria para usar em vetorPar, porque como já explicado, nem todas as posições estarão ocupadas, então neste caso teria que iterar até cont mesmo.