P. 1
arreglos

arreglos

5.0

|Views: 17.871|Likes:
Publicado porargol
Tutorial sobre arreglos
Tutorial sobre arreglos

More info:

Published by: argol on Apr 22, 2008
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

06/23/2013

pdf

text

original

Arreglos en Java

Programación Orientada a Objetos

Arreglos

Un arreglo es una secuencia de datos del mismo tipo Los datos se llaman elementos del arreglo y se numeran 0, 1, 2, ... Estos números localizan al elemento dentro del arreglo y se denominan índices En Java, los índices del arreglo empiezan con 0 y terminan con el tamaño del arreglo -1 Si el arreglo tiene n elementos, se denotan como a[0], a[1], ... a[n-1]

Declaración de un arreglo

La sintaxis de declaración de arreglos en Java es
– –

● ● ● ● ●

Ejemplos: char cad[], p; int [] v, w; double [] m, t[], x; En la declaración del arreglo no se permite indicar el número de elementos, así, int numeros[12] es erroneo

tipo [] identificador tipo identificador []

Definir arreglo de número de elementos

Sintaxis para definir arreglo de un número determinado de elementos:
tipo nombreArreglo[] = new tipo [numeroDeElementos] tipo nombreArreglo[]; nombreArreglo = new tipo[numeroDeElementos];

● ● ●

● ● ● ●

Ejemplo: float notas = new float [26]; int [] a; a = new int[10]

Tamaño del arreglo
● ●

● ●

Java considera cada arreglo como un objeto El número de elementos de un arreglo se conoce accediendo al campo length double [] v = new double [15] System.out.print(v.length); // escribe 15 El campo length está protegido, no se puede modificar

Ejemplo, método con un argumento arreglo, devuelve la suma de elementos
1.double suma (double [] w) 2.{ 3. double s = 0.0; 4. for (int i=0; i < w.length; i++) 5. s += w[i]; 6. return s; 7.}

Inicialización de arreglos

Se deben asignar valores a los arreglos antes de utilizarlos, por defecto se inicializan con 0
precios[0] = 10; precios[1] = 20; precios[2] = 30; int numeros[]={10, 20, 30, 40, 50, 60}; char c[]={'L','u','i','s'}; final int ENE=31, FEB=28, MAR=31,ABR=30; int meses[]={ENE, FEB, MAR, ABR}; for(i=0; i<numeros.length; i++) numeros[i] = -1;

● ● ● ● ● ● ● ● ● ● ● ●

Arreglos de caracteres y cadenas de texto
Una cadena de texto es un conjunto de caracteres, 'abcdefg'. Son soportadas por la clase String: String cadena = 'abcdefg' ● Los arreglos tipo char son secuencias de carcateres, con características de arreglos de otros tipos String mas = “programador Java”;

char datos[] = {'D','i','r','e','c','t','o','r','i','o'};

Copia de arreglos

final int N = 12;

int v1[]= new int[N], v2[]=new int[N];

● ● ● ● ●

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

v1[i]=(int)Math.random()*199+1;

//elementos de v1 copiados a v2 for(int i=0;i<N;i++) v2[i] = v1[i];

Arreglos multidimensionales


● ● ● ●

Los arreglos vistos son unidimensionales, se conocen también como listas (vectores) Los arreglos multidimensionales tiene más de una dimensión. Los de dos dimensiones, se llaman tablas o matrices Sintaxis:
<tipo datoelemento> <nombreArreglo>[][] <tipo datoelemento> [][] <nombreArreglo> char pantalla[][]; pantalla = new int[10][5];

Arreglo bidimensional

● ●

Es un arreglo de arreglos, es decir, un arreglo unidimensional donde cada elemento es un arreglo Arreglo de 4 renglones y 2 columnas: int tabla[][]=new int[4][2]; si cada entero ocupa 4 bytes:
Elemento Posición relativa en memoria
0 4 8 12 16 20 24 28 Tabla[0][0] Tabla[0][1] Tabla[1][0] Tabla[1][1] Tabla[2][0] Tabla[2][1] Tabla[3][0] Tabla[3][1]


● ● ● ● ● ● ● ●

Inicialización de arreglos multidimensionales
● ● ●
● ●

int tabla[][]={{51,52,53},{54,55,56}}; int tabla[][]={{51,52,53}, {54,55,56}};
double tb[][]={{1.5,-2.5},{5.0,-0.0,1.5}};

● ● ● ● ● ● ● ●

int []a={1,3,5}, b={2,4,6,8,10}; int mtb[][]={a, b}; double [][]gr=new double[3][]; gr[0]=new double[3]; gr[1]=new double[6]; gr[2]=new double[5];

Atributo length de una tabla

En un arreglo bidimensional tabla, length de tabla contiene el número de renglones, y length de cada renglón contiene el número de columnas
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

Acceso a elementos de arreglos bidimensionales

● ● ● ● ● ● ● ● ● ●

nombreArreglo[renglon][columna] = valor; variable = nombreArreglo[renglon][columna];
Tabla[2][3]=4.5; Resistencias[2][4]=50; Ventas = Tabla[1][1]; Dia = Semana[3][6]; for(ren=0; ren < Matriz.length; ++ren) for(col=0; col<Matriz[ren].length; ++col) Procesar elemento Matriz[ren][col];

Lectura y visualización
import input.Keyboard; class Tabla { public static void main(String[] a){ int[][]=new int[3][5]; leer(a); visualizar(a); } static void leer(int b[][]){ Int i,j; System.out.println(“Mete datos a matriz”); for(i=0;i<b.length; i++){ System.out.println(“Renglón: “+i); for(j=0;j<b[i].length; j++) b[i][j]=Keyboard.readInt(); } }

Lectura y visualización ...
static void visualizar(int b[][]){ int i,j; System.out.println(“\n\t Matriz leida “); for(i=0; i < b.length; i++){ for(j=0; j < b[i].length; j++) System.out.print(b[i][j]+“ “); System.out.println(“ “); } } } Mete datos a matriz Renglón 0: Matriz leida 45 45 75 25 10 40 75 20 14 36 15 26 25 21 15 37 16 27 10 40

Arreglos de más de dos dimensiones


Java proporciona la posibilidad de almacenar varias dimensiones, por ejemplo un arreglo de tres dimensiones Un arreglo tridimensional:
int volumen[][][]=new[181][178][190];
Y Z

Z

Y

X

X

System.arraycopy

arraycopy(Object src, int srcPos, Object dest, int destpos, int length) Copia un arreglo desde el arreglo fuente especificado, empezando en la posición especificada, hasta la posición especificada del arreglo destino El número de componentes copiados es igual al argumento length. Los componentes en las posiciones srcPos hasta srcPos+length-1 en el arreglo fuente se copian en las posiciones destPos hasta destPos+length-1, respectivamente, del arreglo destino.

Ejemplo, borrar elemento de arreglo
1.public class arregloPrueba 2.{ 3. public static int[] remover(int _i, int[] _a) 4. { 5. int[] b = new int[_a.length-1]; 6. System.arraycopy( _a, 0, b, 0, _i ); 7. System.arraycopy( _a, _i+1, b, _i, b.length-_i ); 8. return b; 9. } 10. 11. public static void main(String[] args) 12. { 13. int[] a = {1, 2, 3, 4, 5}; 14. // remover elemento 3 15. int[] b = remover(3, a); 16. 17. for( int i=0; i<b.length; i++ ) { 18. System.out.println( b[i] ); 19. } 20. } 21.}

Ejemplo de remover en arreglo
1.int[] a = new int[10]; 2.int[] b = new int[9]; 3. 4.int i = 0; 5.int j = 0; 6.int borrarElemento = 5; 7.while (i < a.length && j < b.length) { 8. if (i == borrarElemento) { 9. i++; 10. } 11. else { 12. b[j] = a[i]; 13. i++; 14. j++; 15. } 16.} 17.// en este punto, b = a sin el 5º elemento

Ejemplo de arreglo
● ● ● ● ● ● ● ● ● ●

public class ArrayPlay{ int[] intarray = new int[0]; public static void main(String[] args){ ArrayPlay arrayplay = new ArrayPlay(); arrayplay.play(); }

Ejemplo, método play
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●

//Juega con el arreglo de enteros intarray public void play(){ System.out.println("There are no elements."); printArray(); //there are no elements System.out.println("Adding an element with value intarray = addArrayElement(5); printArray(); //there is 1 element System.out.println("Adding an element with value intarray = addArrayElement(33); printArray(); //there are 2 elements System.out.println("Adding an element with value intarray = addArrayElement(26); printArray(); //there are 3 elements System.out.println("Adding an element with value intarray = addArrayElement(78); printArray(); //there are 4 elements System.out.println("Adding an element with value intarray = addArrayElement(345); printArray(); //there are 5 elements System.out.println("Removing element at position intarray = removeArrayElement(2);

5."); 33."); 26."); 78."); 345."); 2.");

Ejemplo, método play ...
● ● ● ● ● ●

● ● ● ●

printArray(); //there are 4 elements System.out.println("Removing element at position 1."); intarray = removeArrayElement(1); printArray(); //there are 3 elements System.out.println("Inserting an element at position 2 with value 717783."); intarray = insertArrayElement(2,717783); printArray(); //there are 4 elements }

Ejemplo, método printArray
● ● ● ● ● ● ● ●

● ● ● ●

/** Despliega tamaño del arreglo. */ public void printArray(){ System.out.println("Size of intarray is "+ String.valueOf(intarray.length) + "."); for (int i = 0;i < intarray.length;i++){ System.out.println("Array intarray["+ String.valueOf(i) + "] = " + String.valueOf(intarray[i])); } }

● ●

Ejemplo, método removeArrayElemento
● ● ● ● ● ● ● ● ● ● ●

/** Crea un nuevo arreglo de intarray saltando el elemento n. */ public int[] removeArrayElement(int n){ int[] newarray = new int[intarray.length - 1]; for (int i = 0;i < intarray.length;i++){ if (i < n) newarray[i] = intarray[i]; if (i > n) newarray[i-1] = intarray[i]; } return newarray; }

● ●

Ejemplo, método addArrayElemento
● ● ● ● ● ● ● ● ● ● ● ●

/** Crea un nuevo arreglo de intarray agregando un elemento con valor n. */ public int[] addArrayElement(int n){ int[] newarray = new int[intarray.length + 1]; for (int i = 0;i < intarray.length;i++){ newarray[i] = intarray[i]; } newarray[intarray.length] = n; return newarray; }

● ●

Ejemplo, método insertArrayElemento
● ● ● ● ● ● ● ● ● ● ● ● ● ●

/** Crea un nuevo arreglo de intarray insertando un nuevo elemento en el índice j con valor n. */ public int[] insertArrayElement(int j,int n){ int[] newarray = new int[intarray.length + 1]; for (int i = 0;i < intarray.length+1;i++){ if (i < j) newarray[i] = intarray[i]; if (i j) newarray[i] = n; if (i > j) newarray[i] = intarray[i-1]; } return newarray; } }

● ●

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->