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 pequeños 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 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.
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)
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))
{ 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 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.
Top Related