Java 8 stream in ordine inverso

Domanda generale: qual è il modo corretto per invertire un stream? Supponendo che non sappiamo quale tipo di elementi è costituito da tale stream, qual è il modo generico per invertire qualsiasi stream?

Domanda specifica:

IntStream fornisce il metodo range per generare IntStream.range(-range, 0) interi nell’intervallo specifico IntStream.range(-range, 0) , ora che voglio invertirlo, l’intervallo di commutazione da 0 a negativo non funzionerà, inoltre non posso usare Integer::compare

 List list = Arrays.asList(1,2,3,4); list.stream().sorted(Integer::compare).forEach(System.out::println); 

con IntStream questo errore del compilatore

Errore: (191, 0) ajc: il metodo sorted() nel tipo IntStream non è applicabile per gli argomenti ( Integer::compare )

cosa mi manca qui?