¿Literalmente nunca has visto o usado ninguna matriz? Los usamos todo el tiempo, además de las listas. Usualmente no usamos Java, pero usamos muchos otros lenguajes que dibujan similitudes obvias.
Entre las matrices y las listas, uno es más liviano y, además, más preciso, mientras que el otro tiene más funcionalidad. Como regla general en la programación, cuando hay dos tipos similares que se dividen básicamente en esas líneas, debe optar por el más liviano a menos que realmente necesite el más elegante. Además de reducir los gastos generales, esto realmente ayuda a controlar la cantidad de desorden y estado en el programa y, en particular, su código . Si algo sale mal durante la prueba, tiene menos lugares para buscar; y, lo que es más importante, en el caso de las matrices frente a las listas, las personas tienen una mejor idea del alcance limitado de lo que realmente están utilizando y de lo que intentan hacer con él.
Y sí, desde un punto de vista académico, existe la razón adicional de enseñar a los estudiantes los conceptos básicos. Sin embargo, esto va un poco más profundo. Las matrices y las listas son un buen ejemplo de tipos más voluminosos que a menudo se están construyendo sobre, y con frecuencia simplemente envolviendo, instancias subyacentes de los tipos más livianos. Incluso cuando las listas no tienen matrices subyacentes, se comportan externamente como lo hacen. Una parte de enseñarle a alguien qué es una Lista sería enseñarle qué es una matriz.
Pude ver que esto quizás se salga de control en un lenguaje como C ++, donde las matrices básicamente no podrían ser más simples de lo que son, pero en lenguajes de nivel superior, son casi Listas en sí mismas. Si se ajustan perfectamente a sus necesidades en una situación dada, ¿por qué necesitaría usar otra cosa?