English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Come separare zero e non zero in un array di interi usando Java?

Per separare gli zeri dagli elementi non zero in un array di interi e spostarli alla fine, è necessario riorganizzare l'array assegnando in sequenza tutti gli elementi non zero alla loro posizione partendo da zero. Poi, riempie il resto dell'array con zeri da fine a inizio.

Esempio

Il successivo programma Java sposta tutti gli zeri dell'array alla fine.

import java.util.Arrays;
import java.util.Scanner;
public class ZerosFromNonZeros {}}
   public static void main(String args[]){
      //Leggi l'array dall'utente
      Scanner sc = new Scanner(System.in);
      System.out.println("Inserisci la dimensione dell'array da creare: ");
      int size = sc.nextInt();
      int[] myArray = new int[size];
      System.out.println("Inserisci gli elementi dell'array: ");
      for(int i=0; i<size; i++){
         myArray[i] = sc.nextInt();
      }
      System.out.println("L'array creato è: " + Arrays.toString(myArray));
      System.out.println("Array risultante: ");
      int pos = 0;
      for(int i=0; i<myArray.length; i++){
         if(myArray[i]!=0){
            myArray[pos]=myArray[i];
            pos++;
         }
      }
      while(pos<myArray.length) {
         myArray[pos] = 0;
         pos++;
      }
      System.out.println("L'array creato è: " + Arrays.toString(myArray));
   }
}

Risultato dell'output

Inserisci la dimensione dell'array da creare:
8
Inserisci gli elementi dell'array:
14
0
56
0
12
47
0
0
L'array creato è: [14, 0, 56, 0, 12, 47, 0, 0]
Array risultante:
L'array creato è: [14, 56, 12, 47, 0, 0, 0, 0]

Inserisce gli zeri all'inizio dell'array nello stesso modo, itera sugli elementi dell'array dall'ultimo verso il primo, posizionando ogni elemento non zero nella sua posizione. Infine, riempie il resto delle posizioni con zeri.

Riorganizza l'array assegnando in sequenza tutti gli elementi non zero alla loro posizione partendo da zero. Poi, riempie il resto dell'array con zeri da fine a inizio.

Esempio

Il successivo programma Java sposta tutti gli zeri dell'array all'inizio.

import java.util.Arrays;
import java.util.Scanner;
public class ZerosFromNonZeros {}}
   public static void main(String args[]){
      //Leggi l'array dall'utente
      Scanner sc = new Scanner(System.in);
      System.out.println("Inserisci la dimensione dell'array da creare: ");
      int size = sc.nextInt();
      int[] myArray = new int[size];
      System.out.println("Inserisci gli elementi dell'array: ");
      for(int i=0; i<size; i++){
         myArray[i] = sc.nextInt();
      }
      System.out.println("L'array creato è: " + Arrays.toString(myArray));
      System.out.println("Array risultante: ");
      int pos = myArray.length-1;
      for(int i = myArray.length-1; i>=0; i--){
         if(myArray[i]!=0){
            myArray[pos]=myArray[i];
            pos--;
         }
      }
      while(pos>=0) {
         myArray[pos] = 0;
         pos--;
      }
      System.out.println("L'array creato è: " + Arrays.toString(myArray));
   }
}

Risultato dell'output

Inserisci la dimensione dell'array da creare:
8
Inserisci gli elementi dell'array:
14
0
56
0
12
47
0
0
L'array creato è: [14, 0, 56, 0, 12, 47, 0, 0]
Array risultante:
L'array creato è: [0, 0, 0, 0, 14, 56, 12, 47]