2016-02-14 27 views
7

Desidero trasformare un elenco di stringhe in maiuscolo.Trasforma tutti gli elementi di un elenco di stringhe in maiuscolo

Ecco il mio codice per fare questo:

List<String> list = Arrays.asList("abc", "def", "ghi"); 
List<String> upped = list.stream().map(String::toUpperCase).collect(Collectors.toList()); 

C'è un/modo più semplice migliore per fare questo?

+1

C'è sempre un altro modo. Come un ciclo for. Che tipo di risposta stai cercando? – Tunaki

+0

È possibile utilizzare un raggio solare e spostare i bit con una lente d'ingrandimento. – Tunaki

+0

Si potrebbe [usare le farfalle] (https://xkcd.com/378/). – azurefrog

risposta

22

Non hai effettivamente trasformato la lista; hai creato una nuova lista.

di trasformare la lista in una piccola chiamata di metodo, utilizzare List#replaceAll():

list.replaceAll(String::toUpperCase); 
+0

Assegna effettivamente le stringhe trasformate alle rispettive posizioni nella lista? Chiedo solo perché sono abituato al formato stringa 's = s.replaceAll()' ma non conosco questa implementazione per List. Sembra una buona informazione :) –

+1

@ CalvinP.yes - esegue una conversione sul posto su ogni elemento utilizzando il lambda fornito, quindi l'ordine degli elementi viene mantenuto. – Bohemian

+0

Ah, buono a sapersi. Potrei averne bisogno per qualcosa del genere nel prossimo futuro –

Problemi correlati