Non hai mai visto o usato letteralmente alcun array? Li usiamo sempre, oltre alle liste. Di solito non usiamo Java, ma usiamo molte altre lingue che disegnano ovvie somiglianze.
Tra array e Liste, uno più leggero e, inoltre, più preciso, mentre l'altro ha più funzionalità. Come regola generale nella programmazione, quando ci sono due tipi simili che sono sostanzialmente divisi lungo quelle linee, dovresti scegliere quello più leggero a meno che tu non abbia effettivamente bisogno di quello più elaborato. Oltre a ridurre le spese generali, questo aiuta effettivamente a gestire la quantità di disordine e lo stato nel programma e in particolare il suo codice . Se qualcosa va storto durante il test, hai meno posti in cui cercare; e, soprattutto, nel caso di matrici vs. Elenchi, le persone ottengono una migliore idea dell'ambito limitato di ciò per cui lo si sta effettivamente utilizzando e provando a utilizzarlo.
E sì, da un punto di vista accademico, c'è l'ulteriore motivo di insegnare agli studenti le basi. Tuttavia, questo va un po 'più in profondità. Le matrici e gli elenchi sono un buon esempio di tipi più voluminosi, spesso costruiti solo sopra, e spesso semplicemente avvolgenti, istanze sottostanti dei tipi più leggeri. Anche quando gli Elenchi non hanno array sottostanti, si comportano esternamente come fanno. Una parte dell'insegnamento a qualcuno di cosa sia una Lista sarebbe quella di insegnare loro cos'è una matrice.
Ho potuto vedere questo forse sfuggire di mano in un linguaggio come il C ++, in cui le matrici fondamentalmente non potevano essere più ridotte di loro, ma in linguaggi di livello superiore, sono quasi degli Elenchi. Se soddisfano perfettamente le tue esigenze in una determinata situazione, perché dovresti usare qualcos'altro?