Arraylist
Arraylist
Arraylist
Investiga y aprende sobre el uso de los ArrayList en los lenguajes de programación Java y C#.
Asignatura:
Programación I
Docente:
Luis Soto
Alumno:
Luz Cristina Severino Romero – 2024-0265
Período:
2024-C-3
• Cambiar de tamaño: Los ArrayList pueden cambiar de tamaño fácilmente, mientras que los arrays
normales no pueden.
• Guardar cosas diferentes: En un ArrayList, puedes guardar cosas de diferentes tipos, como
números y letras juntos. En un array normal, solo puedes guardar cosas del mismo tipo.
• Hacer cosas con ellos: Con un ArrayList, puedes hacer muchas cosas útiles, como agregar cosas
al final, quitar cosas en el medio y buscar información. Algunas de estas cosas son más difíciles de
hacer con un array normal.
Entonces, si necesitas una forma flexible de guardar y organizar información en tu programa de C#, un
ArrayList puede ser una excelente opción. En las próximas secciones, aprenderemos cómo usarlos y cómo
realizar diferentes tareas con ellos.
Escribe ejemplos básicos que demuestren cómo declarar, inicializar, y manipular un ArrayList.
Java
En este ejemplo, estamos creando un ArrayList llamado paises con cinco elementos, que son los nombres
de algunos países europeos. Luego, utilizamos un bucle foreach para recorrer el ArrayList y mostrar cada
uno de los nombres de los países en la consola.
Incluye operaciones como agregar elementos, eliminar elementos, buscar elementos y recorrer el ArrayList
utilizando bucles.
Java
Salida
C#
Salida
Analiza las ventajas y desventajas de usar un ArrayList frente a otras colecciones disponibles en cada
lenguaje.
Java
C#
Ventajas:
1. Genérico y tipo seguro:
No requiere conversiones de tipo, lo que reduce errores y mejora el rendimiento.
2. Acceso rápido por índice:
Permite acceder a elementos con una complejidad de O(1), igual que en Java.
3. Tamaño dinámico:
Al igual que en Java, ajusta su tamaño automáticamente al agregar o eliminar elementos.
4. API rico en funcionalidades:
Ofrece métodos como AddRange(), RemoveAll(), y soporte para LINQ, lo que permite realizar operaciones
avanzadas como filtrado y ordenación fácilmente.
5. Fácil integración con otras colecciones:
Puedes convertir un List a un array o interactuar con otras estructuras fácilmente.
Desventajas:
1. Inserciones y eliminaciones costosas en el medio:
Similar a Java, estas operaciones tienen un costo de O(n) debido al reordenamiento de elementos.
2. No es Thread-safe:
Si necesitas trabajar en un entorno de múltiples hilos, necesitarás sincronización manual o usar alternativas
como ConcurrentQueue.
3. Consumo de memoria adicional:
Para soportar el crecimiento dinámico, se reserva más espacio del necesario, lo que puede ser ineficiente
en colecciones pequeñas.
Caso practico
Una aplicación para gestionar oficios pendientes del hogar. Los usuarios pueden agregar nuevos oficios,
marcarlos como completados (eliminándolas de la lista) y listar los oficios actuales.
Los oficios deben mantenerse en un orden específico (orden de inserción).
El tamaño de la lista es dinámico y cambiará constantemente al agregar o eliminar tareas.