manejo de arreglos en java
TRANSCRIPT
Manejo de Arreglos y Cadenas
ISC. Cynthia Bernabe Pacheco
El Principal Problema: Crear muchasVariables del mismo Tipo.
ISC. Cynthia Bernabe Pacheco
La Solución: El manejo de ArreglosvUn Arreglo es una secuencia de datos del mismo
tipo.
v Los datos se llaman Elementos del arreglo y seenumeran 0,1,2….
vEstos números localizan al elemento dentro d elarreglo y se denominan Índices.
v En java, los índices del arreglo empiezan con 0 yterminan con el tamaño del arreglo -1.
ISC. Cynthia Bernabe Pacheco
Matrices, Arreglos(arrays) o vectoresv Son las formas de registrar conjuntos de valores todos
del mismo tipo.vEs una estructura homogénea, compuesta por varios
elementos, todos del mismo tipo y almacenadosconsecutivamente en memoria.
vEs un objeto en el que se puede almacenar unconjunto de datos del mismo tipo.
vEs una colección de posiciones de almacenamiento dedatos, donde cada una tiene el mismo tipo y el mismonombre Cada posición de almacenamiento en unarreglo es llamada elemento del arreglo.
ISC. Cynthia Bernabe Pacheco
Manejo de Arreglosv Si el arreglo tiene n elementos, se denotan como
a[0],a[1], a[2]………a[n-1].
ISC. Cynthia Bernabe Pacheco
vLas variables son comocarpetas individuales y unarreglo es como una solacarpeta con muchoscompartimentos.v Los elementos del arreglo songuardados en posicionessecuenciales en memoria.
Declaración de un arreglov La sintaxis de declaración de arreglos en Java es:- Tipo [ ] identificador;- Tipo identificador [ ];v Ejemplos:char cad[ ] , p;int [ ] v, w;double [ ] m, t [ ] ,x;v En un Arreglo no se permite indicar el numero de
elementos asi:int números [12] ; // es Erróneo
ISC. Cynthia Bernabe Pacheco
Definir Arreglo de número deelementos
v Sintaxis para definir arreglo de un numerodeterminado de elementos:
- Tipo nombreArreglo [ ]= new tipo [numElem];
- Tipo nombreArreglo [ ];
nombreArreglo =new tipo[numElem];
vEjemplo:
float notas = new float[26];
Int [ ] a;
a = new int [10];ISC. Cynthia Bernabe Pacheco
Tamaño del Arreglov Java considera cada arreglo como un objeto
vEl número de elementos de un arreglo se conoceaccediendo al campo length.
vEjemplo:
double [ ] v = new double [15];
System.out.print(v.length); // escribe 15
v El campo length esta protegido no se puedemodificar.
ISC. Cynthia Bernabe Pacheco
Inicialización de Arreglosv Se deben asignar valores a los arreglos antes de
utilizarlos por defecto se inicializan con 0.-precio[0]=10;precio[1]=20;precio[2]=30;-int numeros [ ]={10,20,30,40,50};-char c[ ]={‘L’,’u’,’i’,’s’}:-FINAL int ENE=31,FEB=28,MAR=31,ABR=30;-int meses []={ENE,FEB,MAR,ABR};-for (int i=0, i<numeros.length;i++)numeros[i]=i;
ISC. Cynthia Bernabe Pacheco
Acceso a los elementos del arreglovEl acceso a los elementos de un arreglo se realiza
utilizando la expresion:
nom_arreglo[indice];
v Si se intenta acceder a un elemento con unsubindice menor que cero o mayor que el numero delementos de la matriz, java lanzara la excepción:
ArrayIndexOutOfBoundsException
ISC. Cynthia Bernabe Pacheco
ISC. Cynthia Bernabe Pacheco
Acceso a los elementos del arreglo
Ejercicios que deberá correrse desde lalínea de comando
ISC. Cynthia Bernabe Pacheco
ISC. Cynthia Bernabe Pacheco
Recorrido de un Arreglo con For:each
ISC. Cynthia Bernabe Pacheco
Recorrido de un Arreglo con For:each
Tipos de Arreglos
• Arreglo unidimensional: Un arreglo que tieneun solo subíndice.
• Arreglo bidimensional: Un arreglo que tienedos índices.
• Matrices ó Arreglos multidimensional: Unarreglo que tiene mas de un índice.
Arreglos Bidimensionales• Este tipo de arreglos al igual que los anteriores es un
tipo de dato estructurado, finito ordenado yhomogéneo. El acceso a ellos también es en formadirecta por medio de un par de índices.
• La representación en memoria se realiza de dosformas: almacenamiento por columnas o porrenglones.
Arreglos Bidimensionales• Los arreglos bidimensionales se usan para
representar datos que pueden verse como una tablacon filas y columnas. La primera dimensión delarreglo representa las columnas, cada elementocontiene un valor y cada dimensión representa unarelación
Tabla[0][0]Tabla[0][1]Tabla[1][0]Tabla[1][1]Tabla[2][0]Tabla[2][1]Tabla[3][0]Tabla[3][1]
Declaración de Arreglos Bidimensional
• Para Declarar un array se utilizan corchetespara indicar que se trata de una array y no deuna simple variable del tipo especificado.
Sintaxis:
<tipo datoElemento> <nombreArreglo>[][];
<tipo datoElemento> [][] <nombreArreglo>;
v Ejemplo:
char pantalla[][];
Int [][] sumatoria;
Creación de Arreglos Bidimensional
• Los arreglos Bidimensionales se crean con eloperador new.
• Sintaxis:
Matriz= new tipo[filas][columnas];
vEjemplo.
int [][] temperaturas = new int [13][45];
Uso de Arreglos Bidimensional• Para acceder a los elementos de un array,
utilizamos índices (para indicar la posición delelemento dentro del array).
Matriz [indice1][indice2];
Una matriz, en realidad es un vector de vectores
en java, el índice de la primera componente de
un vector es siempre 0, por lo que matriz [0][0]
será el primer elemento de la matriz.
Obtención del tamaño de un ArreglosBidimensional
• El tamaño del array puede obtenerseutilizando la propiedad array.length;
ü matriz.length nos da el numero de filas
ü matriz[0].length nos da el numero decolumnas.
Por lo tanto, el ultimo elemento de la matriz es:
Matriz[matriz.length-1][matriz[0].lentgh-1];
Obtención del tamaño de un ArreglosBidimensional
• float ventas[][]={{0.,0.,0.},{1.0,1.0},{-1.0}};
System.out.print(ventas.length); //escribe 3
System.out.print(ventas[0].length); //escribe 3
System.out.print(ventas[1].length); //escribe 2
System.out.print(ventas[2].length); //escribe 1
Inicialización en la declaración
Podemos asignarle un valor inicial a los
elementos de un array en la propia declaración.
Ejemplo:
int vector [ ][ ]= { { 1,2,3} , [4,5,6} };
El compilador deduce automáticamente lasdimensiones del array.
Inicialización en la declaración
• double tb[][]={{1.5,-2.5}r {5.0,-0.0,1.5}};
• int []a={l,3,5}, b={2,4,6,8,10};
int mtb[][] ={a, b};
• double [][]gr=new double[3][];
gr[0]=new double[3];
gr[l]=new double[6];
gr[2]=new double[5]
Acceso a los elementos de un Arraybidimensional
• nombreArreglo[renglón][columna] = valor;
• variable = nombreArreglo[renglón][columna];
Ejemplos:
• Tabla[2][3]=4.5;
• Resistencias[2][4]=50;
• Ventas = Tabla[1] [1];
• Dia = Semana[3][6];
Acceso a los elementos de un Arraybidimensional
for(ren=0; ren < Matriz.length; ++ren){
for(col=0; col < Matriz [ren] . length; ++col){
System.out.println(Matriz[ren][col]);
}
}
Conceptos ExtrasLa biblioteca de clases de Java incluye una clase auxiliar llamada
java.util.Arrays que incluye como métodos algunas de las tareas
que se realizan más a menudo con vectores:
• Arrays.sort(v) ordena los elementos del vector.
• Arrays.equals(v1,v2) comprueba si dos vectores son iguales.
• Arrays.fill(v,val) rellena el vector v con el valor val.
• Arrays.toString(v) devuelve una cadena que representa elcontenido del vector.
• Arrays.binarySearch(v, k) busca el valor k dentro del vector v(que previamente ha de estar ordenado).
Arreglos de mas de dos dimensionesJava proporciona la posibilidad de almacenarvarias dimensiones, por ejemplo un arreglo detres dimensiones Un arreglo tridimensional:
int volumen[ ][ ][ ]=new[181] [178][190];