Hai letteralmente mai visto o usato alcun array? Li usiamo sempre, oltre agli elenchi. Di solito non usiamo Java, ma usiamo un sacco di altri linguaggi che richiamano evidenti somiglianze.
Tra array e liste, il peso più leggero di uno e, in aggiunta, più al punto, mentre l'altro ha più funzionalità. Come regola generale nella programmazione, quando ci sono due tipi simili che sono fondamentalmente divisi lungo quelle linee, dovresti optare per uno più leggero, a meno che tu non abbia effettivamente bisogno di quello più elaborato. Oltre a ridurre il sovraccarico, questo in realtà aiuta a tenere sotto controllo la quantità di clutter e stato nel programma e in particolare il suo codice . Se qualcosa va storto durante i test, hai meno posti da guardare; e, cosa più importante, nel caso di matrici contro liste, le persone hanno un'idea più precisa dell'ambito limitato di ciò che effettivamente stai usando e cercando di farlo.
E sì, da un punto di vista accademico, c'è una ragione aggiunta per 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 che spesso vengono semplicemente costruiti sopra e, spesso, semplicemente avvolgendo, le istanze sottostanti dei tipi più leggeri. Anche quando le liste non hanno array sottostanti, si comportano esteriormente come fanno. Una parte di insegnare a qualcuno cosa è una lista è insegnare loro che cos'è un array.
Potevo vedere che forse stava sfuggendo di mano in un linguaggio come il C ++, dove gli array in pratica non potevano essere più spogli di quanto non siano, ma nei linguaggi di livello superiore, sono quasi elenchi di se stessi. Se soddisfano perfettamente le tue esigenze in una determinata situazione, perché dovresti usare qualcos'altro?