You are on page 1of 9

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

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

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 pequeos ejemplos 1- Escribir un metodo que retorne el numero de estudiantes que tienen una nota menor que 3 sencillo xD

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

Tenemos esta pequea 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 extrao 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.

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 tamao variable ArrayList-Declaracion E Inicializacion De Un ArrayListArraylist <tipo de dato> nombreArreglo= new Arraylist <tipo de dato>(); -Recorrer Un ArraylistArraylist <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 ArraylistnombreArraylist.add(objeto) nombreArrayList.add(posicion,objeto) si queremos agregarlo en una posicion

especifica -Remover Elemenos En Un ArraylistnombreArraylist.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)) {

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; } 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 aadir 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 mtodo addElement() y se recuperan con el mtodo elementAt(). Vector tiene el mtodo size() que permite conocer cuntos elementos contiene, para evitar el acceso a elementos fuera de los lmites del Vector y obtener una excepcin.

Las clases Coche y Barco son distintas, no tienen nada en comn excepto que ambas son Object. Si no se indica explcitamente de la clase que se est heredando, automticamente 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 mtodo addElement(), sino que tambin se pueden colocar elementos de tipo Barco sin que haya ningn problema ni en tiempo de compilacin ni a la hora de ejecutar el programa.

You might also like