Respondiendo tu pregunta: No, los datos de un array no pueden ser de diferentes tipos.
Sin embargo, puedes crear un array de Object, y ese array te recibirá cualquier tipo de dato. Evidentemente, luego deberás castearlos a su clase original.
En la práctica se usa más las listas (interfaz List) por su gran funcionalidad. Sin embargo, hay casos básicos donde realmente se necesitan arrays o resulte más practica su utilización.
Hablando de los ArrayList (la implementación más usada de la interfaz List): primero no estás amarrado a un tamaño específico. En segundo lugar recorrerlos resulta más fácil:
Suponiendo que tienes una lista de String, podrías recorrerlo así: (de la misma manera se puede recorrer un array
).
Código Java:
Ver originalList<String> cadenas = new ArrayList<String>();
for (String cadena
: cadenas
) { }
Por otro lado, implementa funciones como
add,
remove,
get,
set... Y hasta puedes ordenar las listas utilizando el método
sort de la clase
Collections.