You are on page 1of 30

Arrays y ArrayList

Arrays

Arreglo
Un arreglo en Java es un grupo de posiciones de memoria contiguas, todas las cuales tienen el mismo nombre y el mismo tipo. Un arreglo es un agregado homogneo ya que combina un conjunto de datos del mismo tipo.

Declaracin de arreglos
Los arreglos ocupan espacio en memoria. En java se usa el operador new para asignar espacio de almacenamiento al nmero de elementos requerido por cada arreglo. Un arreglo empieza en 0, es decir, la primer localidad del arreglo es la localidad 0. Ejemplo : int a[ ] = new int[6];

Declaracin de arreglos
Por tanto, si un arreglo tiene n componentes, la ltima localidad est dada por n-1.

n elementos

n-1

Arreglos
Para referirnos a una posicin o elemento en particular del arreglo, especificamos el nombre del arreglo y el nmero de posicin de ese elemento en el arreglo. Ejemplo : a[i] = 0; , a[0][3]= 9;
donde i es el ndice que representa la posicin dentro del arreglo donde reside el componente a accesar.

Arreglos multidimensionales
Se les llama as a aquellos arreglos que contienen dos o mas dimensiones. Declaracin de un arreglo de dos dimensiones:
int[][] arreglo;

Creacin de un arreglo de dos dimensiones:


int[][] arreglo = new int[3][2];

Arreglos una dimensin o dos dimensiones

Cmo recorrer un arreglo...


Los arreglos son recorridos de manera secuencial. Los ciclos for nos sirven para esto. Observa el siguiente ejemplo donde el for nos ayuda a elevar al cuadrado todos los elementos del arreglo:
int[] arr = {6, 2, 8, 4, 3}; for(int i = 0; i < arr.length; i++) { arr[i] *= arr[i]; }

public class Arreglo { public static void main(String[] args) { int[ ] notas = new int[10]; int i=0; Scanner ingreso = new Scanner(System.in); while (i<5) { System.out.print("Ingrese nota :"); notas[i] = ingreso.nextInt(); i++;
}

i=0; while (i<5) { System.out.println("La nota es :"+ notas[i]); i++;


}
} }

Bsqueda de un elemento
La bsqueda de un elemento es la determinacin de la localidad de un elemento con ciertas caractersticas. Una salida de 1 indicara que el elemento no se encontr. Mtodos de bsqueda
Bsqueda secuencial Bsqueda binaria

Ejercicios
1.
2. 3. 4.

Leer un vector de dimensin 50 y contar el nmero de elementos mayores al promedio Dado el vector A de dimensin 1000 imprimir el menor y el mayor valor, indicando su ubicacin dentro del arreglo. Leer dos vectores de dimensin 50 y determinar cual de ellos tiene el promedio mayor Determinar cuantas veces se repite el valor x (ingresado por teclado) en un vector A de dimensin 1000 (considere los elementos ya ingresados)

Nota: para todos los enunciados considere vectores de tipo entero

Java collection framework

ArrayList

ArrayList
Operaciones bsicas Buscando elementos wrapper classes

Es una de las ms bsicas colecciones de java

La clase ArrayList
Class ArrayList<E>
ArrayList, utilizar import java.util.*;

ArrayList vs. array


array
String[] nombres = new String[5]; nombres[0] = "Jennifer"; String nombre = nombres[0];
ArrayList
ArrayList<String> listaNombres = new ArrayList<String>();

listaNombres.add("Jennifer");
String nombre = listaNombres.get(0);

Aadiendo elementos
Los elementos son aadidos dinmicamente a la lista:
ArrayList<String> lista = new ArrayList<String>(); System.out.println("lista = " lista.add(Herramientas"); System.out.println("lista = " lista.add(Martillo"); System.out.println("lista = " lista.add(Clavos"); System.out.println("lista = " + lista); + lista); + lista);

+ lista);

Salida: lista lista lista lista

= = = =

[] [Herramientas] [Herramientas, Martillo] [Herramientas, Martillo, Clavos]

Eliminando elementos
Los elements pueden tambien ser eliminados por el indice:
System.out.println(antes de eliminar = " + lista); lista.remove(0); lista.remove(1); System.out.println(despues de eliminar = " + lista);

Salida:
Antes de eliminar : lista [Herramientas, Martillo, Clavos] Despues de eliminar: lista [Clavos]

Buscando elementos

if (lista.contains(Martillo")) { int indice = lista.indexOf(Martillo"); System.out.println(indice + " " + lista.get(indice)); } if (lista.contains(Pinzas")) { System.out.println(Pinzas est en la lista"); } else { System.out.println(" Pinzas no est en la lista "); }

Salida: 1 Martillo Pinzas no est en la lista

contains si el elemento se encuentra en lista o no. indexOf retorna el indice donde se encuentra el elemento

Metodos ArrayList
Nombre mtodo
add(value) add(index, value) clear() contains(value) get(index) indexOf(value)

Descripcin
adds the given value to the end of the list inserts the given value before the given index removes all elements returns true if the given element is in the list returns the value at the given index

returns the first index at which the given element appears in the list (or -1 if not found) lastIndexOf(value) returns the last index at which the given element appears in the list (or -1 if not found) remove(index) removes value at given index, sliding others back size() returns the number of elements in the list

ArrayList y ciclo for


Sintaxis:
for (<type> <name> : <collection>) { <statement(s)>; }
int sum = 0; for (String s : lista) { sum += s.length(); } System.out.println(Longitud total = " + sum);

Clases Wrapper
Los ArrayLists solo contienen objetos, y los valores primitivos no son objetos
ArrayList<int> no es vlido!!! Se utilizan Clases Wrapper
Primitive type Wrapper class
int double char Integer Double Character Boolean

ejemplo:

boolean

ArrayList<Integer> lista = new ArrayList<Integer>();

Ejemplo Wrapper
La siguiente lista almacena valores int :

index

3 9

valor 13 47 15

ArrayList<Integer> lista = new ArrayList<Integer>(); lista.add(13); lista.add(47); lista.add(15); lista.add(9); int suma = 0; for (int n : list) { sum += n; } System.out.println("lista = " + lista); System.out.println("suma = " + suma);

Salida:
lista = [13, 47, 15, 9] suma = 84

Longitud de Arrays Vs Longitud de Cadenas


String s; s.length();

longitud=lista.length;

You might also like