Faça um programa em Java que leia um vetor A de dez posições. Em seguida, compacte o vetor, retirando os valores nulos e negativos. Armazene esse resultado no vetor B. Mostre o vetor B.

Faça um programa em Java que leia um vetor A de dez posições. Em seguida, compacte o vetor, retirando os valores nulos e negativos. Armazene esse resultado no vetor B. Mostre o vetor B.

Mas qual é a dúvida?

cara sinceramento n estou conseguindo desenvolver a logica, cnsg só ate aqui e de uma prova import java.util.Scanner;

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

   Scanner ler = new Scanner(System.in);

   int [] =  new int [10];
   int i;
   int aux;

   for(i = 0 ; i < 10 ; i++)
    {

         if(a[i] == 0)
          {
                 aux = a[i];
                 a[i] = a[i+1];
                 a[i+1] = aux;  
          }
    }

  for(i = 0 ; i < 10; i++)
   {
         printf("\n %d \n ",a[i]);
   }

}

}

import java.util.Scanner;

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

   Scanner ler = new Scanner(System.in);

   int [] =  new int [10];
   int i;
   int aux;

   for(i = 0 ; i < 10 ; i++)
    {

         if(a[i] == 0)
          {
                 aux = a[i];
                 a[i] = a[i+1];
                 a[i+1] = aux;  
          }
    }

  for(i = 0 ; i < 10; i++)
   {
         printf("\n %d \n ",a[i]);
   }

}

}
//cnsg so até aqui meu 1 ano to meio perdido

Você consegue explicar o que está fazendo nesse trecho de código?

Você está simplesmente trocando as posições dos elementos, mas não faz o menor sentido, pois seu array só possui elementos com valor zero.

Tenta pensar um pouquinho,abaixo está um esqueleto pra você começar:

public class Exemplo {

    public static void main(String[] args) {
        Exemplo programa = new Exemplo();
        programa.executar();
    }

    public void executar() {
        Integer[] vetorA = lerVetor(10);
        Integer[] vetorB = compactarVetor(vetorA);
        apresentar(vetorB);
    }

    private Integer[] lerVetor(int quantidade) {
        // aqui você cria o vetor e inicializa os valores dele
    }

    private Integer[] compactarVetor(Integer[] vetor) {
        // aqui você compacta o vetor passado por parâmetro
    }

    private void apresentar(Integer[] vetor) {
        // aqui você apresenta o vetor passado por parâmetro
    }
}

Pelo que deu a entender, você tem uma lista com 10 elementos, onde em algumas posições você tem números positivos, outras posições números negativos e outras o valor esta nulo. Aí você tem que criar uma lógica para remover números negativos e nulos. Correto?

var vetorA=[10,-9,8,null,6,5,null,-3,2,1];
var vetorB=[];
for(var i=0;i<vetorA.length;i++){
	if(vetorA[i]!=null&&vetorA[i]>=0){
		vetorB.push(vetorA[i]);
	}
}
console.log(vetorB);

Eu fiz o exemplo acima em JavaScript, mas a lógica é a mesma.
Eu tenho o vetorA de 10 posições com números negativos, positivos e nulos. E tenho o meu vetorB vazio. Aí é só colocar for para analizar todas as 10 posições do vetorA. E pra cada posição, eu analizo se o valor daquela posição não esta nulo e se o valor é maior que zero, já que não quero números negativos. Se sim, eu insiro o valor do vetorA daquela posição, no vetorB. No final, o vetorB não vai ter valores nulos e nem negativos.

Se você entender essa lógica, você vai facilmente conseguir escreve-la em JAVA.