(18-03-2023, 15:10)Shordi escribió: En mi experiencia no. Los arrays son más rápidos siempre.
Seria interesante ver un buen ejemplo.
Supongo que necesitaríamos una cantidad de datos razonables.
Tomado de un articulo que encontré de Java ( que probablemente guarda una similitud). Se compara los arrays con las colecciones.
Habla de arrays estáticos, que tienen un tamaño definido, lo contrarío que las colecciones que son dinámicas.
En Java existe otro tipo de arrays que no son estáticos.
En cuanto a rendimiento:
Cita:Las operaciones de recuperación y asignación en una array toman un tiempo constante. Sin embargo, una array no admite la operación de inserción
ya que su longitud se fija después de la creación.
Todas las Colecciones en Java facilitan las operaciones de recuperación, asignación e inserción. El tiempo que toman estas operaciones depende de
la estructura de datos subyacente. Pero sin duda, las arrays ofrecen un mejor rendimiento que las colecciones.
En cuanto a los tipos que almacena:
Cita:
Las arrays en Java pueden contener tipos de datos primitivos (int, char, long, float, double, boolean, etc.) y objetos Java (Integer, Character, Long, Float, Double, Boolean, String, etc.). Por el contrario, una colección puede contener elementos primitivos. Wrapper clases y objetos.
En cuanto al almacenamiento:
Cita:
Los arrays toman O(n) espacio para n número de elementos y no reservar ningún almacenamiento adicional. Por el contrario, la mayoría de las Colecciones reservan algo de almacenamiento adicional para nuevos elementos, y el espacio real que ocupan los contenidos depende de la implementación.
En cuanto a las dimensiones:
Cita:
La dimensión de una arrays es el número total de índices necesarios para seleccionar un elemento. Las arrays en Java admiten arrays unidimensionales y multidimensionales, mientras que una colección no tiene concepto de dimensiones. Sin embargo, podemos crear fácilmente Colecciones anidadas.
Probablemente encontremos ejemplos en un lenguaje más similar a Gambas como es Visual Basic que se pueda comprobar este tema.
En cuanto a que sea más rápido te refieres a los array estáticos, no los dinámicos, supongo.
Ya sabes lo malo que tiene el estático, que tienes que saber las dimensiones de antemano.
Saludos