manejo de arreglos en java

Post on 31-Jul-2015

287 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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];

top related