0% encontró este documento útil (0 votos)
153 vistas7 páginas

Array Dinamico

El documento define un array dinámico y describe cómo crear y manipular arrays dinámicos y ArrayList en Java. Explica que un array dinámico es un arreglo cuyo tamaño puede cambiar dinámicamente y que se implementan como clases en muchos lenguajes. También describe métodos comunes para agregar, eliminar y consultar elementos en arrays dinámicos y ArrayList.

Cargado por

imelda
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
153 vistas7 páginas

Array Dinamico

El documento define un array dinámico y describe cómo crear y manipular arrays dinámicos y ArrayList en Java. Explica que un array dinámico es un arreglo cuyo tamaño puede cambiar dinámicamente y que se implementan como clases en muchos lenguajes. También describe métodos comunes para agregar, eliminar y consultar elementos en arrays dinámicos y ArrayList.

Cargado por

imelda
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 7

sarahycoac@gmail.

com

DEFINICION DE UN ARRAY DINAMICO


En programacin, un array dinmico, ms apropiadamente llamado arreglo dinmico,
tambin llamado inapropiadamente matriz dinmica o tabla dinmica, es un arreglo de
elementos que crece o mengua dinmicamente conforme los elementos se agregan o
se eliminan. Se suministra como libreras estndar en muchos lenguajes modernos de
programacin.
Un arreglo dinmico no es lo mismo que un arreglo asignado dinmicamente, que es
un arreglo de tamao fijo, pero cuyo tamao se fija cuando se asigna por primera vez
ARREGLOS DE TAMAO PREDEFINIDO Y CAPACIDAD LIMITADA
La forma ms sencilla de construir un arreglo dinmico es la asignacin de espacio de
tamao fijo dividido en dos partes: la primera es la parte ocupada de del arreglo y la
segunda est libre para su crecimiento. Es sencillo as aadir o eliminar elementos en
el extremo del arreglo en tiempo constante usando el espacio reservado, hasta que
este espacio se consume completamente. El nmero de elementos usados por el
contenido del arreglo dinmico es su tamao lgico o simplemente tamao, mientras
que el tamao del arreglo subyacente se denomina la capacidad dinmica, que es el
tamao mximo posible sin reubicacin de datos.
En aplicaciones donde el tamao lgico es conocido, las estructuras de tamao fijo son
las ms eficientes, como es evidente, por lo que es mejor usar en estos casos arreglos
asignados dinmicamente, cuyo tamao sea un parmetro de la ejecucin, que pueda
aumentarse cuando se detecta que se alcanzan los lmites, optimizando el espacio
ocupado.

[email protected]

DECLARACIN E INICIALIZACIN DE UNA VARIABLE VECTOR


En el siguiente ejemplo podemos ver cmo se declara una variable de este tipo:
import java.util.Vector;
Vector<String> v = new Vector<String>();
v.add("Hola");
v.add("Este es el segundo elemento del vector");
v.add("Tercera lnea");
System.out.println("elementos en v : "+v.size());
System.out.println("primer elemento: "+v.elementAt(0));

Al estar implementada esta funcionalidad mediante una clase, la variable v se inicializa


creando una instancia de la clase con la llamada a new Vector()

Por otra parte, en la declaracin indicamos el tipo de objetos que pretendemos almacenar
(en el ejemplo, objetos de tipo String). Es posible no indicar el tipo de objeto, pero en ese caso
el compilador genera un mensaje de aviso (aunque realiza la compilacion). Si queremos
mantener la libertad de almacenar todo tipo de objetos, pero evitar el aviso que genera el
compilador, siempre podemos definir el vector como Vector<Object>

A continuacin, se aaden elementos mediante llamadas al mtodo add()

Tambin podemos ver que nmero de elementos que contiene el vector se obtiene con el
mtodo size()

Por ltimo, vemos que para acceder a un elemento del vector se utiliza el mtodo
elementAt(ndice), en donde el ndice del elemento n es n-1, porque comienzan a contarse a
partir de cero.

AADIR, ELIMINAR Y CONSULTAR ELEMENTOS DE UN VECTOR


Ya hemos visto que podemos aadir elementos al final de un Vector con el mtodo
add(e). Adems, disponemos de los siguientes mtodos para alterar el contenido del
mismo:
addElement(e) Equivalente a add(e).
add (idx, e), insertElementAt(e, idx) inserta el elemento en la posicin indicada.
set (idx, e), setElementAt(e, idx) sustituye el elemento en el ndice idx por el
elemento e
get (idx), elementAt(idx) Devuelve el elemento en el ndice idx del Vector

[email protected]

firstElement(), lastElement() Devuelven respectivamente el primer y ltimo


elemento del vector
remove (idx), removeElementAt(idx) Devuelve el elemento en el ndice idx, y lo
elimina del Vector. El ndice de los elementos posteriores disminuye en una unidad, de
modo que el elemento en la posicin idx+1 pasa a ser el nuevo elemento en la posicin
idx
removeRange(idx1, idx2) elimina los elementos con indices idx1 <= idx < idx2
contains( e ) Devuelve true si el vector contiene el objeto e
CAPACIDAD DE UN VECTOR
Cada vez que se aade un elemento a un Vector, el sistema tiene que ubicar la memoria necesaria
para albergarlo. Para mejorar el rendimiento cuando se trabaja con Vectores que deben contener un
elevado nmero de elementos, en al crear el objeto Vector se puede definir una capacidad inicial, y
un incremento de capacidad del Vector:
int capacidadInicial = 1000;
int capacidadIncremento = 100;
Vector v = new Vector(capacidadInicial, capacidadIncremento);

Adems, disponemos de los siguientes mtodos relacionados con la capacidad del vector:
int capacity() Devuelve la capacidad actual del vector (siempre sera mayor o igual a su tamao
actual)
ensureCapacity(int capacidad) Incrementa la capacidad del vector si es menor que la que se
indica (pero no la reduce si es mayor)
trimToSize() reduce la capacidad del vector para que coincida con el tamao del vector

[email protected]

DECLARAR, REDIMENSIONAR Y TRABAJAR CON ARRAYS DINMICOS


Los arrays dinmicos son los arrays con reserva dinmica de memoria en los que las
dimensiones no se conocen en tiempo de compilacin. Para declarar un array
dinmico, simplemente declrelo sin indicar las dimensiones del mismo:
var
arrayDinamico : array of string; //array dinmico de string

Antes de que puede utilizar un array dinmico debe reserver la memoria para el mismo
asignndole una dimensin:
//reserva espacio para 10 elementos
SetLength (arrayDinamico, 10);
Una vez que se ha reservado la memoria, puede acceder a los elementos del array
como uno normal:
arrayDinamico[0] := 'Esto es una prueba';
textoObtenido := arrayDinamico[0];
Los arrays dinmicos son gestionados durante su vida, por lo que no es necesario que
los libere cuando acabe de utilizarlos, ya que se liberarn cuando dejen el mbito en el
que fueron creados. Sin embargo, si en alguna ocasin necesita liberarlos (por ejemplo
cuando utilizan gran cantidad de memoria) lo nico que tiene que hacer es asignar el
array dinmico a "nil":
arrayDinamico := nill; //libera arrayDinamico de memoria

[email protected]

DECLARACIN Y CREACIN DE UN ARRAYLIST


De forma general un ArrayList en Java se crea de la siguiente forma:
ArrayList nombreArray = new ArrayList();
Esta instruccin crea el ArrayList nombreArray vaco.
Un arrayList declarado as puede contener objetos de cualquier tipo.
Por ejemplo:
ArrayList a = new ArrayList();
a.add("Lenguaje");
a.add(3);
a.add('a');
a.add(23.5);
Los elementos del arrayList a son:
Lenguaje 2 a 23.5

MTODOS DE ARRAYLIST
Algunos mtodos que proporciona ArrayList son:
MTODO

DESCRIPCIN

size()

Devuelve el nmero de elementos (int)

add(X)

Aade el objeto X al final. Devuelve true.

add(posicin, X)

Inserta el objeto X en la posicin indicada.

get(posicion)

Devuelve el elemento que est en la posicin indicada.

remove(posicion)

Elimina el elemento que se encuentra en la posicin


indicada. Devuelve el elemento eliminado.

remove(X)

Elimina la primera ocurrencia del objeto X. Devuelve true


si el elemento est en la lista.

clear()

Elimina todos los elementos.

set(posicin, X)

Sustituye el elemento que se encuentra en la posicin


indicada por el objeto X. Devuelve el elemento
sustituido.

contains(X)

Comprueba si la coleccin contiene al objeto X.


Devuelve true o false.

indexOf(X)

Devuelve la posicin del objeto X. Si no existe devuelve


-1

[email protected]

COPIAR UN ARRAYLIST
El nombre de un ArrayList contiene la referencia al ArrayList, es decir, la direccin de
memoria donde se encuentra el ArrayList, igual que sucede con los arrays estticos.
Si disponemos de un ArrayList de enteros llamado ventas:

La instruccin:
ArrayList<Integer> ventas1 = ventas;
No copia el array ventas en el nuevo array ventas1 sino que crea un alias:

De esta forma tenemos dos formas de acceder al mismo ArrayList: mediante la


referencia ventas y mediante la referencia ventas1.
Para hacer una copia podemos hacerlo de forma manual elemento a elemento o se
puede pasar la referencia del ArrayList original al constructor del nuevo:
ArrayList<Integer> ventas1 = new ArrayList<Integer>(ventas);

ARRAYLIST COMO PARMETRO DE UN MTODO

[email protected]

Un ArrayList puede ser usado como parmetro de un mtodo. Adems un mtodo


puede devolver un ArrayList mediante la sentencia return.
Ejemplo: Mtodo que recibe un ArrayList de String y lo modifica invirtiendo su
contenido:
import java.util.*;
public class ArrayList4 {
public static void main(String[] args) {
ArrayList<String> nombres = new ArrayList<String>();
nombres.add("Ana");
nombres.add("Luisa");
nombres.add("Felipe");
nombres.add("Pablo");
System.out.println(nombres);
nombres = invertir(nombres);
System.out.println(nombres);
}
public static ArrayList<String> invertir(ArrayList<String> nombres) {
// Crea una lista para el resultado del mtodo
ArrayList<String> resultado = new ArrayList<String>();
// Recorre la lista de nombres en orden inverso
for (int i = nombres.size() - 1; i >= 0; i--) {
// Aade cada nombre al resultado
resultado.add(nombres.get(i));
}
return resultado;
}
}

También podría gustarte