Quero fazer um novo array. Apenas com os valores negativos deste array. Ou seja, passar de um array pra outro.
O que eu fiz até agora:
public static int[] valoresNegativos (int[] valores){
int[] valoresNegativos;
for (int i = 0; i < valores.length; i++){
if (valores[i] < 0){
/*aqui não sei o que colocar */
}
}
return valoresNegativos;
}
Primeiro, precisa ter um tamanho determinado, eu determinaria o tamanho como sendo o tamanho do array recebido
publicstaticint[]valoresNegativos(int[]valores){int[]valoresNegativos=valores;for(inti=0;i<valores.length;i++){if(valores[i]<0){/*aqui não sei o que colocar *///valoresNegativos[i]=valores[i];}}returnvaloresNegativos;}
Isto, certamente, faria o que precisa.
Apenas trate os valores null (pois se nem todos forem negativos, algum deles será nulo.
Um ótimo exemplo, porém, a dificuldade dele é bem mais básica.
Ele está com dificuldades em entender um simples array, quanto mais um list...
rmendes08
drsmachado:
Primeiro, precisa ter um tamanho determinado, eu determinaria o tamanho como sendo o tamanho do array recebido
publicstaticint[]valoresNegativos(int[]valores){int[]valoresNegativos=valores;for(inti=0;i<valores.length;i++){if(valores[i]<0){/*aqui não sei o que colocar *///valoresNegativos[i]=valores[i];}}returnvaloresNegativos;}
Isto, certamente, faria o que precisa.
Apenas trate os valores null (pois se nem todos forem negativos, algum deles será nulo.
Como assim, null ? O array é de primitivos [b]int[/int], eles nunca serão nulos. Além do mais, esse algoritmo não faz nada, porque ele não copia o array. Ele o referencia através de uma segunda variável, de forma que a atribuição:
valoresNegativos[i]=valores[i];
não tem efeito, porque é o mesmo array. Eu faria um diferente: