Unidad II Tema 3: Tratamiento de arreglos y cadenas en...

13
Estucturas Estucturas de Datos de Datos P P á á gina gina 1 1 Unidad II Tema 3: Tratamiento de arreglos y cadenas en Java Profesor: Jorge Escalona / Tobías Bolívar Email: [email protected] / [email protected] Página Web: http://estructuradatos.tripod.com

Transcript of Unidad II Tema 3: Tratamiento de arreglos y cadenas en...

Page 1: Unidad II Tema 3: Tratamiento de arreglos y cadenas en Javaestructuradatos.tripod.com/temas/tema3.pdf · Estucturas de Datos Página 3 Propiedades de Arreglos ... matrices. Declaración:

EstucturasEstucturas de Datosde Datos PPáágina gina 11

Unidad II

Tema 3: Tratamiento de arreglos y

cadenas en Java

Profesor: Jorge Escalona / Tobías Bolívar

Email: [email protected] / [email protected]

Página Web: http://estructuradatos.tripod.com

Page 2: Unidad II Tema 3: Tratamiento de arreglos y cadenas en Javaestructuradatos.tripod.com/temas/tema3.pdf · Estucturas de Datos Página 3 Propiedades de Arreglos ... matrices. Declaración:

EstucturasEstucturas de Datosde Datos PPáágina gina 22

Unidad II: Unidad II: Tratamiento de arreglos y cadenas en JavaTratamiento de arreglos y cadenas en Java

Qué es un Arreglo?

Un arreglo (matriz, vector, lista) es un tipo especial de objeto compuesto por una colección de elementos del

mismo tipo de datos que se almacenan consecutivamente en memoria. Ej.

lista[0]

lista[1]

lista[2]

lista[3]

lista[4]

lista[5]

lista -- nombre

[i] -- índice

Page 3: Unidad II Tema 3: Tratamiento de arreglos y cadenas en Javaestructuradatos.tripod.com/temas/tema3.pdf · Estucturas de Datos Página 3 Propiedades de Arreglos ... matrices. Declaración:

EstucturasEstucturas de Datosde Datos PPáágina gina 33

Propiedades de ArreglosPropiedades de Arreglos

• Los arreglos son objetos

• Son creados dinámicamente (en run time)

• Pueden ser asignados a variables de tipo Object

• Cualquier método de la clase Object puede ser invocado en un arreglo

• Un objeto arreglo contiene una secuencia de variables del mismo tipo

• Las variables son llamadas los componentes del arreglo

• Si el tipo del componente es T, entonces el arreglo en sí mismo es de tipo T[]

• El tipo de componente puede ser tipo arreglo (arreglo de arreglos)

• El tipo de elemento puede ser tanto un tipo primitivo o un objeto (referencia)

• La longitud (length) de un arreglo es su número de componentes

• La longitud de un arreglo es definida cuando el arreglo es creado y no puede ser cambiado.

• La longitud del arreglo puede ser accesada como una instancia de variable declarada como public final

• Los arreglos deben ser indexados por variables enteras en el rango 0.. length -1

• Un ArrayIndexOutBoundException es generada si es violada la regla anterior.

• Variables de tipo short, byte o char pueden ser usadas como índices.

Page 4: Unidad II Tema 3: Tratamiento de arreglos y cadenas en Javaestructuradatos.tripod.com/temas/tema3.pdf · Estucturas de Datos Página 3 Propiedades de Arreglos ... matrices. Declaración:

EstucturasEstucturas de Datosde Datos PPáágina gina 44

Arreglos Lineales o Unidimensionales

Estos arreglos constituyen una lista de variables relacionadas. La forma de acceso a cada uno de sus diferentes valores, es usando acompañando al nombre de la variable más un índice: nombreArreglo [índice]. Los índices están en el rango de 0 a tamaño-1.

Declaración:

tipoDato[] nombreArreglo;

o

tipoDato nombreArreglo [];

Creación:

NombreArreglo = new tipoDato[n];

Ejemplo:

int lista[];

lista= new int[10];

Unidad II: Unidad II: Tratamiento de arreglos y cadenas en JavaTratamiento de arreglos y cadenas en Java

Page 5: Unidad II Tema 3: Tratamiento de arreglos y cadenas en Javaestructuradatos.tripod.com/temas/tema3.pdf · Estucturas de Datos Página 3 Propiedades de Arreglos ... matrices. Declaración:

EstucturasEstucturas de Datosde Datos PPáágina gina 55

Arreglos Lineales o Unidimensionales

InicializacióntipoDato nombreArreglo[]={valor1,valor2,…,valorN}; //Este caso no requiere el uso de new

Ejemplo:double [] lista = {1.5,2.45,3.15}

Recorrido, Inserción y Eliminación

Observe el siguiente ejemplo:

Unidad II: Unidad II: Tratamiento de arreglos y cadenas en JavaTratamiento de arreglos y cadenas en Java

Page 6: Unidad II Tema 3: Tratamiento de arreglos y cadenas en Javaestructuradatos.tripod.com/temas/tema3.pdf · Estucturas de Datos Página 3 Propiedades de Arreglos ... matrices. Declaración:

EstucturasEstucturas de Datosde Datos PPáágina gina 66

Arreglos Lineales o Unidimensionales

public class Vectores

{

public static void main(String [] args)

{

int elementos [] = new int [10];

int n_elem;

n_elem =agregarElemVector(elementos,11,n_elem);

n_elem =agregarElemVector(elementos,5,n_elem);

n_elem =agregarElemVector(elementos,8,n_elem);

mostrarVector(elementos, n_elem);

n_elem =elimElemVector(elementos,n_elem);

mostrarVector(elementos, n_elem);

System.out.println(“La media del Vector es: ”+ media(elementos, n_elem));

}

Unidad II: Unidad II: Tratamiento de arreglos y cadenas en JavaTratamiento de arreglos y cadenas en Java

Page 7: Unidad II Tema 3: Tratamiento de arreglos y cadenas en Javaestructuradatos.tripod.com/temas/tema3.pdf · Estucturas de Datos Página 3 Propiedades de Arreglos ... matrices. Declaración:

EstucturasEstucturas de Datosde Datos PPáágina gina 77

Arreglos Lineales o Unidimensionales

public void mostrarVector (int datos[], int n )

{ //Se recorre el vector para mostrar sus datos

int i;

For (i=0; i< n; i++)

System.out.println(datos[i]);

}

public int agregarElemVector (int datos[], int elem, int n )

{ //Agrega un elemento al final del vector

if (n<datos.length)

datos[++n]= elem;

return n;

}

Unidad II: Unidad II: Tratamiento de arreglos y cadenas en JavaTratamiento de arreglos y cadenas en Java

Page 8: Unidad II Tema 3: Tratamiento de arreglos y cadenas en Javaestructuradatos.tripod.com/temas/tema3.pdf · Estucturas de Datos Página 3 Propiedades de Arreglos ... matrices. Declaración:

EstucturasEstucturas de Datosde Datos PPáágina gina 88

Arreglos Lineales o Unidimensionales

public int elimElemVector (int datos[], int n )

{ //Elimina el ultimo elemento del vector

if (n>=0)

n--;

return n;

}

public float media (int datos[], int n )

{ //Se recorre el vector para calcular la media de sus datos

int i;

int suma = 0;

For (i=0; i< n; i++)

suma+=datos[i]);

return suma/n;

}

}

Unidad II: Unidad II: Tratamiento de arreglos y cadenas en JavaTratamiento de arreglos y cadenas en Java

Page 9: Unidad II Tema 3: Tratamiento de arreglos y cadenas en Javaestructuradatos.tripod.com/temas/tema3.pdf · Estucturas de Datos Página 3 Propiedades de Arreglos ... matrices. Declaración:

EstucturasEstucturas de Datosde Datos PPáágina gina 99

Arreglos Multidimensionales

Estos arreglos están formados por dos o más índices. Los ejemplos más comunes son los arreglos bidimensionales conocidos como tablas omatrices.

Declaración:

tipoDato nombreArreglo[][];

Creación:

NombreArreglo = new tipoDato[n][m];

Ejemplo:

int matriz[][];

matriz= new int[10][5];

Unidad II: Unidad II: Tratamiento de arreglos y cadenas en JavaTratamiento de arreglos y cadenas en Java

Page 10: Unidad II Tema 3: Tratamiento de arreglos y cadenas en Javaestructuradatos.tripod.com/temas/tema3.pdf · Estucturas de Datos Página 3 Propiedades de Arreglos ... matrices. Declaración:

EstucturasEstucturas de Datosde Datos PPáágina gina 1010

Operaciones con Cadenas

Las cadenas o String constituyen una de las clases más frecuentemente utilizada en los programas de Java. Por ser un objeto, las cadenas presentan una serie de propiedades y comportamientos que se explicarán a continuación. En Java las cadenas son inalterables.

Declaración:

String nombreCadena;

Creación:

nombreCadena = “<valor>”;

o

nombreCadena = new String (“<valor>”);

o

nombreCadena = new String (otraCadena);

Unidad II: Unidad II: Tratamiento de arreglos y cadenas en JavaTratamiento de arreglos y cadenas en Java

Ejemplo:

String nombre;

nombre= “Roberto”;

o

nombre= new String (“Roberto”);

Page 11: Unidad II Tema 3: Tratamiento de arreglos y cadenas en Javaestructuradatos.tripod.com/temas/tema3.pdf · Estucturas de Datos Página 3 Propiedades de Arreglos ... matrices. Declaración:

EstucturasEstucturas de Datosde Datos PPáágina gina 1111

Operaciones con Cadenas

Métodos:

Unidad II: Unidad II: Tratamiento de arreglos y cadenas en JavaTratamiento de arreglos y cadenas en Java

Retorna un valor menor que 0 si la cadena invocada es menor que str, y un valor

mayor a 0 si la cadena invocada es mayor que str, y 0 si las cadenas son iguales.

int compareTo (String str)

Busca en la cadena invocada la subcadena especificada por str. Regresa el

índice de la primera correspondencia o -1 en caso de falla.

int indexOf (String str)

Busca en la cadena invocada la subcadena especificada por str. Regresa el

índice de la última correspondencia o -1 en caso de falla.

int lastIndexOf (String str)

Obtiene el carácter que se encuentra en una posición determinada de la cadena

por el índice especificado por index.

char charAt (int index)

Obtiene la longitud de una cadena.int length()

Devuelve true si la cadena invocada contiene la misma secuencia de caracteres

que str.

boolean equal (String str)

Page 12: Unidad II Tema 3: Tratamiento de arreglos y cadenas en Javaestructuradatos.tripod.com/temas/tema3.pdf · Estucturas de Datos Página 3 Propiedades de Arreglos ... matrices. Declaración:

EstucturasEstucturas de Datosde Datos PPáágina gina 1212

Operaciones con Cadenas

Métodos:

Unidad II: Unidad II: Tratamiento de arreglos y cadenas en JavaTratamiento de arreglos y cadenas en Java

Devuelve una cadena resultante de reemplazar todas las apariciones de oldChar

con el newChar.

String replace (char oldChar,

char newChar)

Elimina los espacios en blanco que pudieran existir al principio o al final de una

cadena.

String trim ()

Convierte a minúscula las mayúsculas de la cadena invocadaString toLowerCase ()

Devuelve un arreglo de caracteres creado a partir del objeto String.char[] toCharArray ()

Extrae una subcadena de la cadena invocada. Si se especifica un parámetro, el

método devuelve una nueva cadena que comienza donde indica inicio y se

extiende hasta el fina de las misma. Si son dos, la nueva cadena estará formada

por los caracteres existentes en la cadena invocada entre la posición inicio y fin,

ambos inclusive

String substring(int inicio, [int

fin])

Retorna una cadena que es resultado de la concatenación de la cadena invocada

con la cadena str.

String concat (String str)

Page 13: Unidad II Tema 3: Tratamiento de arreglos y cadenas en Javaestructuradatos.tripod.com/temas/tema3.pdf · Estucturas de Datos Página 3 Propiedades de Arreglos ... matrices. Declaración:

EstucturasEstucturas de Datosde Datos PPáágina gina 1313

Operaciones con Cadenas

Métodos:

Unidad II: Unidad II: Tratamiento de arreglos y cadenas en JavaTratamiento de arreglos y cadenas en Java

Crean cadenas a partir del correspodiente parámetro y devuelven dicha cadenas.

El argumento de este método puede ser: boolean, char, char[], double, float, int,

long, object.

String valueOf( tipoDato Arg)

Convierte a mayúsculas las minúsculas de la cadena invocada.String toUpperCase ()