Escrito por estudiantes que aprobaron Inmediatamente disponible después del pago Leer en línea o como PDF ¿Documento equivocado? Cámbialo gratis 4,6 TrustPilot
logo-home
Resumen

Sumario ESTRUCTURAS DE ALMACENAMIENTO Y GESTIÓN DE DATOS EN JAVA

Puntuación
-
Vendido
-
Páginas
41
Subido en
18-01-2026
Escrito en
2025/2026

ESTRUCTURAS DE ALMACENAMIENTO Y GESTIÓN DE DATOS EN JAVA

Vista previa del contenido

ESTRUCTURAS DE ALMACENAMIENTO Y GESTIÓN DE DATOS EN
JAVA


CAPÍTULO 1: 📖 FUNDAMENTOS TEÓRICOS

1. ARRAYS: LA ESTRUCTURA ESTÁTICA FUNDAMENTAL

1.1 Definición Extendida y Precisión Académica

Un array es una estructura de datos que representa una secuencia de elementos, donde cada elemento (un grupo
de bytes de memoria que almacenan un único ítem de datos) se asocia inequívocamente con al menos un índice
(entero no negativo). Se caracteriza por cuatro axiomas fundamentales:

1. Isometría de memoria: Cada elemento ocupa exactamente el mismo número de bytes.

2. Homogeneidad: Todos los elementos deben ser del mismo tipo de dato.

3. Contigüidad (teórica): Se tiende a conceptualizar que ocupan localizaciones de memoria consecutivas
(aunque en arrays multidimensionales esto tiene matices).

4. Dimensionalidad: El número de índices necesarios para recuperar un elemento define la dimensión del
array,.

1.2 Arquitectura y Funcionamiento Interno

Cuando se instancia un array mediante la palabra clave new , ocurren procesos críticos en la memoria:

1. Asignación: new solicita al sistema operativo un bloque de memoria para los elementos.

2. Inicialización de bits: Se ponen a cero todos los bits de los bytes de cada elemento. Esto garantiza que cada
posición contenga un valor por defecto (0 para números, null para referencias, false para booleanos),.

3. Referencia: La variable del array no contiene los datos en sí, sino una referencia (puntero) a la dirección de
memoria donde comienza la secuencia de datos.

Gestión de Tipos:

• Arrays de Tipos Primitivos: Almacenan los valores directamente en las celdas de memoria asignadas.

• Arrays de Objetos: Almacenan referencias a los objetos, no los objetos en sí. Inicialmente, estas referencias son
null hasta que se instancian los objetos individuales.


1.3 Clasificación de Algoritmos de Manipulación de Arrays

Para trabajar con arrays, existen algoritmos estándar que todo ingeniero debe dominar.

A. Búsqueda Lineal

• Funcionamiento: Examina el elemento con índice 0 y continúa secuencialmente hasta el final o hasta encontrar
el dato.

• Ventajas: Simplicidad extrema; funciona en arrays desordenados.

,• Desventajas: Ineficiente en grandes volúmenes. Coste computacional O(n). En un array de 20 millones de datos,
podría requerir 20 millones de comparaciones.

• Caso de uso: Listas pequeñas o datos no ordenados.

B. Búsqueda Binaria

• Funcionamiento: Divide el array en mitades sucesivas. Calcula el índice central; si el dato buscado es menor,
descarta la mitad superior; si es mayor, descarta la inferior. Repite el proceso.

• Requisito Crítico: El array debe estar previamente ordenado.

• Ventajas: Velocidad logarítmica O(log n). En 1.048.576 elementos, solo requiere 20 comparaciones máximo.

• Desventajas: Complejidad de implementación y necesidad de orden previo.

C. Ordenación de Burbuja (Bubble Sort)

• Funcionamiento: Realiza múltiples pasadas sobre el array comparando elementos adyacentes. Si están en el
orden incorrecto, los intercambia. Los valores más grandes “burbujean” hacia el final en cada iteración.

• Ventajas: Simplicidad conceptual.

• Desventajas: Es uno de los algoritmos más lentos (O(n²)). No apto para producción masiva.




2. CLASE STRING: INMUTABILIDAD Y GESTIÓN DE TEXTO

2.1 Definición Extendida

En Java, un String no es un tipo primitivo, sino una Clase. Representa una secuencia de caracteres inmutables.
Físicamente, actúa como un array unidimensional de caracteres.

🎓 Explicación para humanos: Un String es como un cartel de neón soldado. Una vez fabricado con el texto
“HOLA”, no puede cambiar las letras. Si quiere que diga “HOLA MUNDO”, no modifica el cartel existente; tiene
que fabricar un cartel nuevo completo y tirar el anterior a la basura (o al recolector de basura).

2.2 Arquitectura: El problema de la Inmutabilidad

La propiedad de inmutabilidad implica que una vez creado un objeto String , su contenido no puede variar.

• Consecuencia en Memoria: Cualquier operación de concatenación ( + ), reemplazo o conversión genera un
nuevo objeto en el Heap de memoria, dejando el original para ser recolectado.

• Riesgo: Un uso intensivo de modificaciones de cadenas puede saturar la memoria y disparar el Garbage
Collector, degradando el rendimiento.

2.3 Clasificación de Clases de Texto Alternativas

Para solucionar la inmutabilidad, Java ofrece alternativas mutables:


2.3 Clasificación de Clases de Texto Alternativas

,Para solucionar la inmutabilidad, Java ofrece alternativas mutables:


Clase Características Ventajas Desventajas Caso de Uso

Inmutable. Ineficiente en
Seguridad en hilos, Textos fijos,
String Almacenamiento modificaciones
simplicidad. mensajes, claves.
fijo. frecuentes.

Thread-safe (seguro Entornos multi-hilo
Mutable. Métodos Lento debido a la
StringBuffer en concurrencia). donde se modifica
sincronizados. sincronización.
Modificable in-situ. texto.

No es seguro en Manipulación
Mutable. Métodos Máxima eficiencia en
StringBuilder entornos intensiva de texto
no sincronizados. modificaciones.
concurrentes. en un solo hilo.




3. INTERCAMBIO DE DATOS: XML (DOM vs SAX)

El tratamiento de XML es vital para la interoperabilidad. Java ofrece dos arquitecturas opuestas para procesar
estos archivos: DOM y SAX.

3.1 DOM (Document Object Model)

• Definición Técnica: Representación del documento XML como una estructura de árbol jerárquico cargada
completamente en la memoria principal.

• Funcionamiento: Parsea el archivo completo y crea objetos para cada etiqueta, atributo y texto (Nodos).

• Ventajas:

◦ Permite navegación bidireccional (ir al padre, volver al hijo).

◦ Permite modificar la estructura y guardar los cambios.

• Desventajas:

◦ Alto consumo de memoria (Heap Space). Si el XML es gigante, la aplicación puede colapsar.

3.2 SAX (Simple API for XML)

• Definición Técnica: Analizador basado en flujos de eventos. No carga la estructura en memoria; lee
secuencialmente.

• Funcionamiento: A medida que lee el archivo, dispara eventos ( startDocument , startElement , characters ,
endElement ) que el programador debe capturar.


• Ventajas:

◦ Extremadamente eficiente en memoria (Memory friendly).

◦ Ideal para archivos XML masivos.

, • Desventajas:

◦ Lectura unidireccional (no se puede “volver atrás”).

◦ No permite modificar el documento fácilmente.

◦ Lógica de programación más compleja.




4. ESTRUCTURAS DINÁMICAS: LISTAS Y COLECCIONES
4.1 Concepto de Lista

Una lista es una secuencia de elementos del mismo tipo donde cada elemento conoce cuál es su siguiente. A
diferencia de los arrays, no requieren un tamaño fijo inicial.

Clasificación por Acceso:

1. Listas Densas: La posición física determina el orden (como un array). Si borro el elemento 2, queda un
hueco o debo mover todos los demás.

2. Listas Enlazadas: La posición es lógica. Cada elemento tiene un “puntero” o referencia al siguiente. Si borro
uno, solo cambio hacia dónde apunta el anterior.

Listas Ordinales Específicas:

• PILA (Stack): Comportamiento LIFO (Last In, First Out). El último en entrar es el primero en salir (como una pila
de platos).

• COLA (Queue): Comportamiento FIFO (First In, First Out). El primero en llegar es el primero en ser atendido
(como una cola del supermercado).

4.2 Framework Collections de Java

Java agrupa estas estructuras en una jerarquía robusta.

A. Listas (Interfaz List)

Colecciones ordenadas que permiten duplicados.

• ArrayList: Implementación basada en arrays redimensionables. Rápida en lectura ( get ), lenta en
inserción/borrado intermedio (requiere desplazar bits).

• LinkedList: Implementación de lista doblemente enlazada. Lenta en lectura (debe recorrer nodos), rapidísima en
inserción/borrado.

B. Conjuntos (Interfaz Set)

Colecciones que NO permiten duplicados. Basadas en conceptos matemáticos.

• HashSet: Sin orden garantizado. Máxima velocidad (usa tablas hash).

• TreeSet: Ordena los elementos automáticamente (árbol binario). Menor rendimiento que HashSet pero
garantiza orden.

Escuela, estudio y materia

Información del documento

Subido en
18 de enero de 2026
Número de páginas
41
Escrito en
2025/2026
Tipo
RESUMEN
3,49 €
Accede al documento completo:

¿Documento equivocado? Cámbialo gratis Dentro de los 14 días posteriores a la compra y antes de descargarlo, puedes elegir otro documento. Puedes gastar el importe de nuevo.
Escrito por estudiantes que aprobaron
Inmediatamente disponible después del pago
Leer en línea o como PDF

Conoce al vendedor
Seller avatar
jesús6

Documento también disponible en un lote

Thumbnail
Package deal
Asignatura Programación-Java
-
7 2026
€ 10,76 Más información

Conoce al vendedor

Seller avatar
jesús6 Universidad Nacional de Educación a Distancia
Ver perfil
Seguir Necesitas iniciar sesión para seguir a otros usuarios o asignaturas
Vendido
1
Miembro desde
6 meses
Número de seguidores
0
Documentos
17
Última venta
5 meses hace

0,0

0 reseñas

5
0
4
0
3
0
2
0
1
0

Por qué los estudiantes eligen Stuvia

Creado por compañeros estudiantes, verificado por reseñas

Calidad en la que puedes confiar: escrito por estudiantes que aprobaron y evaluado por otros que han usado estos resúmenes.

¿No estás satisfecho? Elige otro documento

¡No te preocupes! Puedes elegir directamente otro documento que se ajuste mejor a lo que buscas.

Paga como quieras, empieza a estudiar al instante

Sin suscripción, sin compromisos. Paga como estés acostumbrado con tarjeta de crédito y descarga tu documento PDF inmediatamente.

Student with book image

“Comprado, descargado y aprobado. Así de fácil puede ser.”

Alisha Student

¿Trabajando en tus referencias?

Crea citas precisas en APA, MLA y Harvard con nuestro generador de citas gratuito.

¿Trabajando en tus referencias?

Preguntas frecuentes