Está en la página 1de 26
Arreglos
Arreglos
Arreglos UNIDAD 2 M.S.C.Antonio Daniel López Serrano

UNIDAD 2

M.S.C.Antonio Daniel López Serrano

Introducción  Definición ◦ Un arreglo es un objeto, es una estructura de datos que
Introducción
Introducción

Definición Un arreglo es un objeto, es una estructura de datos que contiene una colección de datos del mismo tipo.

datos que contiene una colección de datos del mismo tipo. ◦ Los arreglos en Java son

Los arreglos en Java son objetos que almacenan variables de un mismo tipo, los arreglos pueden almacenar tipos primitivos o referencia a objetos.

Introducción  Definición ◦ Una instancia de un arreglo que sólo se declaró y no
Introducción
Introducción

Definición Una instancia de un arreglo que sólo se declaró y no ha sido explícitamente inicializada tiene el valor null.

no ha sido explícitamente inicializada tiene el valor null. ◦ Si inicializado, los elementos del arreglo

Si

inicializado, los

elementos del arreglo contendrán el valor default del tipo que almacenan.

al

el

arreglo

ha

sido

menos

Introducción  Nosotros debemos conocer lo siguiente: ◦ Como declarar arreglos ◦ Como construir arreglos
Introducción
Introducción

Nosotros debemos conocer lo siguiente:

Introducción  Nosotros debemos conocer lo siguiente: ◦ Como declarar arreglos ◦ Como construir arreglos ◦

Como declarar arreglos

Como construir arreglos

Como inicializar arreglos


Terminología
Terminología

Los arrays unidimensionales se conocen con el nombre de vectores.

unidimensionales se conocen con el nombre de vectores.  Los arrays bidimensionales se conocen con el

Los arrays bidimensionales se conocen con el nombre de matrices.

Declaración  Para declarar un array, se utilizan corchetes para indicar que se trata de
Declaración
Declaración

Para declarar un array, se utilizan corchetes para indicar que se trata de un array y no de una simple variable del tipo especificado.

un array y no de una simple variable del tipo especificado.  La forma mas directa

La forma mas directa de construir un arreglo es con el uso de la palabra new seguida del tipo de arreglo, y dentro de los corchetes el numero de elementos que

contendrá ese arreglo:


Declaración
Declaración

Declaración de arreglos de tipo primitivo

int[] key; // corchetes antes del nombre(recomendado)

int key []; // corchetes antes del nombre

// espacios entre el nombre y los corchetes legales, pero malo

Declaración de arreglos de referencia a objetos

Thread[] threads; // Recomendado

Thread threads[]; // Legal pero menos leible

Declaración de arreglos Multidimensionales

String[][][] occupantName; // recomendado

String[] ManagerName []; // Legal

Creación  Vector (array unidimensional): tipo identificador[]; • o bien tipo[] identificador; donde:  tipo
Creación
Creación

Vector (array unidimensional):

tipo identificador[];

o bien tipo[] identificador;

tipo identificador[]; • o bien tipo[] identificador; donde:  tipo es el tipo de dato de

donde:

tipo es el tipo de dato de los elementos del vector

identificador es el identificador de la variable.

Creación Ejemplos: float[] notas = new float[ALUMNOS]; int[] temperaturas = new int[7]; int [] testScores;
Creación
Creación

Ejemplos:

float[] notas = new float[ALUMNOS]; int[] temperaturas = new int[7];

notas = new float[ALUMNOS]; int[] temperaturas = new int[7]; int [] testScores; // Declara el arreglo

int [] testScores; // Declara el arreglo de enteros

testScores = new int[4]; // construye un arreglo y lo

asigna a la variable testScores

// Declara el arreglo de enteros testScores = new int[4]; // construye un arreglo y lo

Creación
Creación

Matriz (array bidimensional):

tipo identificador[][];

o bien tipo[][] identificador;

tipo identificador[][];  o bien tipo[][] identificador;  Ejemplo int[][] temperaturas = new int[12][31];

Ejemplo

int[][] temperaturas = new int[12][31];


Uso
Uso

Vector (array unidimensional):

vector[índice]

 Uso Vector (array unidimensional): vector[índice]  En Java, el índice de la primera componente de

En Java, el índice de la primera componente de un vector es siempre 0.

El tamaño del array puede obtenerse

utilizando la propiedad vector.length

Por tanto, el índice de la última componente

es: vector.length-1

 Ejemplo de uso: float[] notas = new float[3];

Ejemplo de uso:

float[] notas = new float[3];

 Ejemplo de uso: float[] notas = new float[3];

Uso
Uso

Matriz (array bidimensional):

matriz[índice1][índice2]

Una matriz, en realidad, es un vector de vectores o arreglo de arreglos:

en realidad, es un vector de vectores o arreglo de arreglos: ◦ En Java, el índice

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.

El tamaño del array puede obtenerse utilizando la propiedad array.length:

matriz.length nos da el número de filas

matriz[0].length nos da el número de columnas

Por tanto, el último elemento de la matriz es

matriz[matriz.length-1][matriz[0].length-1]

Ejemplo: int[][] myArray = new int[3][]; myArray[0] = new int[2]; myArray[0][0] = 6; myArray[0][1] =

Ejemplo:

Ejemplo: int[][] myArray = new int[3][]; myArray[0] = new int[2]; myArray[0][0] = 6; myArray[0][1] = 7;

int[][] myArray = new int[3][]; myArray[0] = new int[2]; myArray[0][0] = 6; myArray[0][1] = 7;

myArray[1] = new int[3];

myArray[1][0] = 9; myArray[1][1] = 8;

myArray[1][2] = 5;

myArray[0][0] = 6; myArray[0][1] = 7; myArray[1] = new int[3]; myArray[1][0] = 9; myArray[1][1] = 8;

Inicialización en la declaración
Inicialización en la declaración

Podemos asignarle un valor inicial a los elementos de un array en la propia declaración

int vector[] = {1, 2, 3, 5, 7}; int matriz[][] = { {1,2,3}, {4,5,6} };

El compilador deduce automáticamente las dimensiones del array.

El inicializar un arreglo implica poner cosas dentro de él. Esas cosas se les denomina elementos del arreglo, y

estos a su vez pueden ser tipos primitivos o referencias

a objetos.

Inicializando arreglos  Ejemplo: ◦ Si tenemos el siguiente arreglo: Animal [] pets = new
Inicializando arreglos
Inicializando arreglos

Ejemplo:

Si tenemos el siguiente arreglo:

Animal [] pets = new Animal[3];

el siguiente arreglo: Animal [] pets = new Animal[3]; ◦ La forma de inicializarlo es la

La forma de inicializarlo es la siguiente:

pets [0] = new Animal();

pets [1] = new Animal(); pets [2] = new Animal();


Inicializando arreglos bidimensionales
Inicializando arreglos
bidimensionales

Para inicializar arreglos bidimensionales inicializar de la siguiente manera:

int [] [] scores = new int [3] [] ; // Declare and create an array holding // three references to int arrays

scores [0] = new int [4] ; // the first element in the scores array is an int // array of four int elements

scores [1] = new int [6]; // the second element in the scores array is an // int array of six int elements

scores [2] = new int [1]; // the third element in the scores array is an int // array of one int element

 La forma de crear, instanciar e inicializar un arreglo es: //De tipos primitivos int

La forma de crear, instanciar e inicializar un arreglo es:

//De tipos primitivos int x = 9; int[] dots = {6,x,8};

es: //De tipos primitivos int x = 9; int[] dots = {6,x,8}; //De objetos Dog puppy

//De objetos

Dog puppy = new Dog("Frodo");

Dog[] myDogs = {puppy, new Dog("Clover"), new

Dog("Aiko")};


Asignación de elementos de un arreglo
Asignación de elementos de un
arreglo

Para asignar un valor a un elemento hacemos uso del índice

del elemento a inicializar, el índice del primer elemento del

arreglo es 0 (cero).

Un arreglo de tipos primitivos puede almacenar valores del

Un arreglo de tipos primitivos puede almacenar valores del tipo declarado o menores: int[] weightList =

tipo declarado o menores:

int[] weightList = new int [5]; byte b = 4;

char c = 'c';

short

list[0] = b; // OK, byte es más pequeño que int list[1] = c; // OK, char es más pequeño que int list[2] = s; // OK, short es más pequeño que int

s = 7;


Asignación de elementos de un arreglo
Asignación de elementos de un
arreglo

Un arreglo de referencias a objetos puede almacenar

objetos y cualquier subclase de objetos del cual fue

declarado el arreglo:

class Car {} class Subaru extends Car {} class Ferrari extends Car {} Car [] myCars = {new Subaru(), new Car(), new Ferrari()};

Aquí claramente podemos observar que lo que en realidad se almacena en el arreglo son referencias a un tipo de objeto Car, y no se guardan objetos como tal

dentro de un arreglo de referencia a objetos, lo mismo

sucede para las variables de referencia

Biblioteca de Arreglos  La biblioteca de clases de Java incluye una clase auxiliar llamada
Biblioteca de Arreglos
Biblioteca de Arreglos

La 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:

de las tareas que se realizan más a menudo con vectores: ◦ Arrays.sort( v ) ordena

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 el contenido del vector.

Arrays.binarySearch(v, k) busca el valor k dentro del vector v (que previamente ha de estar ordenado).

Cadenas
Cadenas

M.S.C.Antonio Daniel López Serrano

Cadenas M.S.C.Antonio Daniel López Serrano
Cadenas de caracteres  Una cadena de caracteres no es más que un vector de
Cadenas de caracteres
Cadenas de caracteres

Una cadena de caracteres no es más que un vector de caracteres.

de caracteres no es más que un vector de caracteres.  La clase java.lang.String , que

La clase java.lang.String, que se emplea para representar cadenas de caracteres en Java, incluye distintos métodos que nos facilitan algunas de las operaciones que se suelen realizar con cadenas de caracteres:

El método substring nos permite obtener una subcadena:

String java=“Java”;

String s = java.substring(0,3);

System.out.println(s);


Cadenas de caracteres
Cadenas de caracteres

El método charAt(n) nos devuelve el carácter que se encuentra en la posición n de la cadena:

String java=“Java”; char c = java.charAt(2); System.out.println(c); // v

El método indexOf(s) nos devuelve la posición de una subcadena dentro de la cadena:

String java=“Java”; int p = java.indexOf(“av”); System.out.println(p);


Cadenas de caracteres
Cadenas de caracteres

El método replace(old,new) reemplaza subcadenas:

String java=“Java”; java.replace(“ava”,“ini”); System.out.println(java);

El método equals(s) se usa para comprobar si dos

cadenas son iguales:

if (s.equals(“Hola”)) {

}


Cadenas de caracteres
Cadenas de caracteres

El método startsWith(s) nos dice si una cadena empieza con un prefijo determinado:

if (s.startsWith(“get”)) {

}

El método endsWith(s) nos dice si una cadena termina con un sufijo determinado:

if (s.endsWith(“.html”)) {

}

El método length() devuelve la longitud de la cadena.