Sono abbastanza fuori dal mondo con la mia programmazione Java e sto facendo il corso di Udacity di Google come aggiornamento. Stavo seguendo la lezione 1 sull'app Sunshine dove il docente ha scelto di creare dati falsi dichiarando una serie di stringhe e quindi convertendole in una ArrayList.ArrayList Dichiarazione vs Conversione
Il codice è il seguente:
String[] data = {
"Mon 6/23 - Sunny - 31/17",
"Tue 6/24 - Foggy - 21/8",
"Wed 6/25 - Cloudy - 22/17",
"Thurs 6/26 - Rainy - 18/11",
"Fri 6/27 - Foggy - 21/10",
"Sat 6/28 - TRAPPED IN WEATHERSTATION - 23/18",
"Sun 6/29 - Sunny - 20/7"
};
List<String> weatherForecast = new ArrayList<>(Arrays.asList(data));
Mi chiedevo c'è qualche vantaggio di utilizzare questo metodo di conversione? Perché non dichiarare immediatamente i dati come ArrayList come tali:
ArrayList weatherForecast = new ArrayList();
weatherForecast.add("Today - Sunny - 88/63");
weatherForecast.add("Tomorrow - Foggy = 70/46");
weatherForecast.add("Weds - Cloudy - 72/63");
weatherForecast.add("Thurs 6/26 - Rainy - 18/11");
weatherForecast.add("Sat 6/28 - TRAPPED IN WEATHERSTATION - 23/18");
weatherForecast.add("Sun 6/29 - Sunny - 20/7");
Grazie!
Forse il docente voleva solo dimostrare che è possibile convertire prontamente tra array e liste usando l'API Collections. ArrayList utilizza un array sotto le copertine. In alcune circostanze (ma non questa) è possibile ottenere un piccolo vantaggio in termini di prestazioni dall'uso di un array, ma le liste forniranno molte più funzionalità. Quindi nessuna grande differenza, dipende da cosa intendi fare con esso. Potresti voler lavorare con un array piuttosto che con un elenco, finché non avrai bisogno di alcune delle funzionalità che un elenco fornirà su un array. – Nio
Dichiarazioni di array aggregate come questa vengono eseguite per creare un'istanza di una matrice di dati statici, mentre le liste implicano una forma dinamica e anche un parametro molto più probabile per una chiamata di metodo rispetto a una matrice. Convertire da uno all'altro è come dire "Ora è costante, ma ci aspettiamo di ricevere una lista nello sviluppo futuro". Almeno questo è come l'ho letto. Aggiungere i dati direttamente a un ArrayList equivale a mettere '! tag importanti 'accanto alle regole nei file css. In altre parole, un po 'grezzo, anche se funziona.;) – Neil