Contenedores de tamaño variable ArrayList

10
Arreglos Multidimensionales Los arreglos multidimensionales, son arreglos de arreglos es decir que son arreglos que a su vez tienen como elementos otros arreglos, lo que permite construir arreglos como se quiera. No es comun su utilizacion en java pues consumen demasiada memoria. La excepcion son los arreglos dominados bidimensionales, los cuales tambien se definen como matrices. En las cuales tenemos un numero de m filas y un numero de n columnas Arreglos Unidimensionales Cuando el uso de variables y algunos objetos y otros componentes no resuelve el problema, se utilizan los arreglos o matrices, que son un tipo de dato que permite almacenar y procesar datos a la vez. Los arreglos son de longitud fija. En java un arreglo es considerado como un objeto al igual que todas las variables de tipo String. Por lo tanto, ambos se consideran tipos de referencia de las clases Array y String. Despues de ver una definicion de los tipos de arreglo ahora veremos algunos ejemplos de ellos - Inicializacion de un arreglo: [/b]Para inicializar un arreglo debemos seguir la estructura que es tipo-nombre[ ]=new tipo [dimension]; -Acceder a los elementos de un arreglo Para ello debemos tener en cuenta que los arreglos se empiezan a

Transcript of Contenedores de tamaño variable ArrayList

Page 1: Contenedores de tamaño variable ArrayList

Arreglos Multidimensionales

Los arreglos multidimensionales, son arreglos de arreglos es decir que son arreglos

que a su vez tienen como

elementos otros arreglos, lo que permite construir arreglos como se quiera. No es

comun su utilizacion en java pues consumen demasiada memoria.

La excepcion son los arreglos dominados bidimensionales, los cuales tambien se

definen como matrices. En las cuales tenemos un numero de m filas y un numero

de n columnas

Arreglos Unidimensionales

Cuando el uso de variables y algunos objetos y otros componentes no resuelve el

problema, se utilizan los arreglos o matrices, que son un tipo de dato que permite

almacenar y procesar datos a la vez. Los arreglos son de longitud fija.

En java un arreglo es considerado como un objeto al igual que todas las variables

de tipo String. Por lo tanto, ambos se consideran tipos de referencia de las clases

Array y String.

Despues de ver una definicion de los tipos de arreglo ahora veremos algunos

ejemplos de ellos

- Inicializacion de un arreglo:

[/b]Para inicializar un arreglo debemos seguir la estructura que es

tipo-nombre[ ]=new tipo [dimension];

-Acceder a los elementos de un arreglo

Para ello debemos tener en cuenta que los arreglos se empiezan a contar desde

0,1,2,3,4......

es decir en la posicion 0 hay un dato en la posicion 1 hay otro dato asi

Page 2: Contenedores de tamaño variable ArrayList

susecivamente

Dato: 1-2-3-4-5-6

posicion: 0-1-2-3-4-5

arregloEjemplo [2]

ahi estariamos accediendo a la posicion 2 que es la que contiene al numero 3, por si

no me entendieron otro ejemplo de el

arregloEjemplo [5]

accedemos a la posicion 5 que es la que contiene el numero 6

-Asignar datos a un arreglo

arregloEjemplo [0]=12;

y si el dato es de tipo String lo asignamos entre comillas, es decir

arregloEjemplo [0]="nombre";

-Arreglo de objetos

persona miPersona[ ]=new persona [5]

por el momento solo diriamos que creamos 10 espacios los cuales aun no tienen

asignado datos por lo cual quedan como null

Dato: null-null-null-null-null

Posicion: 0 1 2 3 4

Recorrido de un arreglo

Normalmente el recorrido de un arreglo se hace con un for,while,do while el mas

usado es el for en mi caso

String cadenas [ ]=new String [20];

for (int i =0; i<cadenas.length;i++)

{

Instrucciones

Page 3: Contenedores de tamaño variable ArrayList

system.out.println(cadenas );

}

En el comienzo del for estariamos diciendo que el contador comienza en i=0 luego

contador menor que cadenas.length hace referencia al numero de datos que

contendra el arreglo en este caso que son 20

luego iran las instrucciones lo que queramos que haga en el ejmplo imprime en

pantalla las cadenas en la posicion i

Ejemplo de un arreglo al cual le asigamos datos. Ya debera existir una clase

llamada estudiantes que contenga String nombre,String apellido, String codigo, int

edad

Estudiante estudiates[ ]=new Estudiante [10];

estudiantes [0]=new Eestudiante ("ana","perez","1234","18" ;

bien ahi decimos en la posicion 10 creamos un estudiante de tipo Estudiante que se

llama ana apellido perez con el codigo 1234 y de edad 18 como les decia ya debe

existir la clase Estudiante

Ejercicio Para que practiquen:

Escriba la declaracion para los siguientes arreglos

1. salario de los 35 empleados de una empresa

2. Notas de los estudiantes de un curso de 30personas

3. Las 8mascotas que son atendidas diariamente en una clinica veterinaria

4. Los 20productos que se ubican en la estanteria de una tienda cada uno tiene

nombre,codigo y precio

5. Los 40 vehiculos que caben en un parqueadero publico cada uno con

nombre,color,placa

Para explicar todo lo ya dicho anteriormente aca van 2 pequeños ejemplos

1- Escribir un metodo que retorne el numero de estudiantes que tienen una nota

menor que 3

sencillo xD

Page 4: Contenedores de tamaño variable ArrayList

double estudiante [ ]=new double [30];

public int estudiantesBajos( )

{

int contador=0;

for (int i=0; u<estudiantes.lengt; i++)

{

if (estudiante < 3);

contador++;

}

return contador;

}

Bueno y se me olvidaba algo si el metodo no requiere de algun retorno entonces

iria con void es decir public void..... en este casi si requiere de retorno por lo cual va

con un int

2.Escribir un metodo que cuente el numero de estudiantes que obtuvieron una nota

superior a la del estudiante que esta en la posicion del arreglo resivida por

parametro

public int superiores (int posicion)

{

int contador=0;

for (int i =0; i <estudiantes.length; i++)

{

if (estudiante >estudiante [posicion])

contador++;

}

return contador;

}

Bien ahora pasamos a otro tema

Manejo De Objetos Dentro De Arreglos

Page 5: Contenedores de tamaño variable ArrayList

Tenemos esta pequeña tabla

_______________

cliente

_______________

String cedula;

String nombre;

String direccion;

________________

Cliente clientes [ ]=new Cliente [100];

clientes [posicion]= Retorna un objeto cliente

Mirar un dato del cliente

clientes [posicion].getnombre();

Retorna un nombre de un cliente en la posicion indicada

---Ejemplo:-----

Metodo que recibe la cedula de un cliente y muestra su nombre y direccion en

pantalla

como les decia anteriormente como en este caso no retorna nada lo ponemos con

void (vacio)

public void buscarCliente(String ced);

{

for(int i=0; i<clientes.length; i++)

{

if (clientes.getcedula().equals(ced))

{

system.out.prinln(clientes.getnombre()+clientes.getdireccion())

}

Explico lo ya hecho:

primero recorremos el arreglo con el for, nada extraño

luego decimos que al escribir .getcedula estamos llamando la cedula en una

posicion dada es igual a la cedula ingresada al encontrar la cedula, luego imprime

en pantalla el nombre, y direccion del cliente que encontro segun la cedula escrita.

Page 6: Contenedores de tamaño variable ArrayList

Para que practiquen hagan un metodo que a el cliente digitar un nombre lo busque

entre los datos y si lo encuentra que muestre en pantalla existe,si no lo encuentra

que imprima no existe.

Aca acabo mi tutorial fiuuu me tome un buen tiempo haciendolo espero que

comenten constructivamente no desctructivamente dudas cualquier cosa y espero

que les sirva pronto are otro sobre ArrayList para que esten atentos

by Elemental

Salud Y Libertad!!!!

Contenedores de tamaño variable ArrayList-

-Declaracion E Inicializacion De Un ArrayList- Arraylist <tipo de dato> nombreArreglo= new Arraylist <tipo de dato>();

-Recorrer Un Arraylist-

Arraylist <String> nombres=new Arraylist <String>(); for (int i=0; i<nombres.size(); i++) { system.out.println(nombres.get (i));

Ejemplo: public class ejemplo() { private vehiculo=vehiculo; private string placa; private string marca;

Arraylist <vehiculo> vehi=new Arraylist <vehiculo>(); for (int=0; i<vehi.size(); i++) { system.out.prinln(vehi.get(i).getplaca() +" " + vehi.get(i).marca());

-Agregar Elementos A Un Arraylist- nombreArraylist.add(objeto)

Page 7: Contenedores de tamaño variable ArrayList

nombreArrayList.add(posicion,objeto) si queremos agregarlo en una posicion especifica

-Remover Elemenos En Un Arraylist- nombreArraylist.remove(posicion)

De acuerdo a los visto haremos un ejemplo con todo lo mencionado para aclarar

Tenemos dos clases una llamada grupo y otra estudiante

Tenemos dos clases una llamada grupo y otra estudiante

____________________ Grupo _____________________ Arraylist <Estudiantes>est;

_____________________

_______________ Estudiante _______________ String nombre; String codigo; int edad; ________________ Escribir un metodo para la clase gruo y que resiva el codigo del estudiante y retorne el estudiante si no se encuentra el estudiante el metodo retorna null

Solucion (Haciendo de cuenta que ya esta declaradas las clases)

Public Estudiante buscarEstudiante(String cod) { for(int i=0; izest.size(i): i++) { if(est.get(i).getcodigo().equals(cod)) { return est.get(i); } } return null; }

Para terminar otro ejemplo que contiene mas cositas...

Ejemplo2 Escribir un metodo que permita agregar un estudiante, siempre y cuando no exista,mostrar un mensaje en pantalla indicando si se creo o no.

Arraylist <Estudiante>est=new Arraylist <Estudiante>();

Public void agregarEstudiante(String cod) { int aux=0; for(int i=0; i<est.size(); i++) { if (est.get(i).getnombre().equals(cod))

Page 8: Contenedores de tamaño variable ArrayList

{ aux=1; } } system out.println("El estudiante ya existe" } if (aux==0) { Estudiante i=new Estudiante(nombre,codigo,edad) est.add(i) } } system.out.println("El estudiante se agrego" }

Si no entienden algunas cosas pueden ver el post anterior que es sobre arreglos que esta explicado de una forma mejor esta lo hice basado en que ya tienen algo de conocimiento. En los arreglos se usa el .length para llamar el arreglo en un arraylist lo cambiamos por un .size()

Espero les haya servido, dudas cualquier cosa dejan el comentario espero criticas constructivas no destructivas

LINKS

http://www.ctr.unican.es/asignaturas/programacion1/

import java.util.*;

class Coche {

private int numCoche;

Coche( int i ) {

numCoche = i;

}

void print() {

System.out.println( "Coche #"+numCoche );

}

}

class Barco {

private int numBarco;

Barco( int i ) {

numBarco = i;

}

Page 9: Contenedores de tamaño variable ArrayList

void print() {

System.out.println( "Barco #"+numBarco );

}

}

public class java411 {

public static void main( String args[] ) {

Vector coches = new Vector();

for( int i=0; i < 7; i++ )

coches.addElement( new Coche( i ) );

// No hay ningun problema en añadir un barco a los coches

coches.addElement( new Barco( 7 ) );

for( int i=0; i < coches.size(); i++ )

(( Coche )coches.elementAt( i ) ).print();

// El barco solamente es detectado en tiempo de ejecucion

}

}

Como se puede observar, el uso de un Vector es muy sencillo: se crea uno, se colocan elementos en él con el

método addElement() y se recuperan con el método elementAt(). Vector tiene el método size() que permite

conocer cuántos elementos contiene, para evitar el acceso a elementos fuera de los límites del Vector y obtener

una excepción.

Las clases Coche y Barco son distintas, no tienen nada en común excepto que ambas son Object. Si no se indica

explícitamente de la clase que se está heredando, automáticamente se hereda de Object. La clase Vector

maneja elementos de tipo Object, así que no solamente es posible colocar en ella objetos Coche utilizando el

método addElement(), sino que también se pueden colocar elementos de tipo Barco sin que haya ningún

problema ni en tiempo de compilación ni a la hora de ejecutar el programa.