Unidad II Tema 3: Tratamiento de arreglos y cadenas en...
Transcript of Unidad II Tema 3: Tratamiento de arreglos y cadenas en...
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
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
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.
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
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
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
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
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
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
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”);
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)
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)
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 ()