JAVA удалить все нули в конце массива

Сам массив отсортировать получилось, но не пойму как удалить все нули и вывести

import java.util.Arrays;
public class Quest {
    public static void main(String[] args) {
        int[] numbers = { 5, 4, 3, 0, 6, 0, 0, 5, 6, 0, 25, 0, 8, 7, 3, 0, 1, 1, 0, 6, 4 };

        System.out.println ("Дан массив: " + Arrays.toString((numbers)));
        int temp;
        int count = 0;
        for ( int i = 0; i < numbers.length; i++) {
            if ((numbers[i] != 0)) { 
                temp = numbers[count];
                numbers[count] = numbers[i];
                numbers[i] = temp;
                count = count + 1;
            }
        }   
        System.out.println("Отсортированный массив с 0 в конце: " + Arrays.toString(numbers));

        int[] newNumbers = new int[numbers.length];
        for ( int i = 0; i < numbers.length - 1; i++) {
            if ((numbers[i] == 0)) {
                newNumbers[i] = numbers[i - 1];
                System.out.println("Отсортированный массив без 0 в конце: " + Arrays.toString(newNumbers[i]));
            } else {
                i++;
            }               
        }       
    }
}

Ответы (2 шт):

Автор решения: coolsv

C помощью стримов, например:

Arrays.stream(numbers)
    .boxed() // пакуем примитивы в объекты
    .sorted(Collections.reverseOrder()) // сортируем в обратном порядке
    .filter(i -> i != 0) // убираем всё что не равно 0
    .forEach(System.out::println); // выводим
→ Ссылка
Автор решения: Eugene Krivenja

Примитивно вторую часть можно так написать:

System.out.println("Отсортированный массив с 0 в конце: " + Arrays.toString(numbers));

int i;
for ( i = 0; i < numbers.length - 1; i++) {
    if (numbers[i] == 0) {
        break;
    }
}
numbers = Arrays.copyOfRange(numbers, 0, i);

System.out.println("Отсортированный массив без 0 в конце: " + Arrays.toString(numbers));
→ Ссылка