Download - Arreglos y Arreglos con Listas
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 homogéneo ya que combina un conjunto de datos del mismo tipo.
Declaración de arreglos Los arreglos ocupan espacio en memoria. En
java se usa el operador new para asignar espacio de almacenamiento al número 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];
Declaración de arreglos
Por tanto, si un arreglo tiene n componentes, la última localidad está dada por n-1.
0 n-1
n elementos
Arreglos
Para referirnos a una posición o elemento en particular del arreglo, especificamos el nombre del arreglo y el número de posición de ese elemento en el arreglo.
Ejemplo : a[i] = 0; , a[0][3]= 9;
donde i es el índice que representa la posición dentro del arreglo donde reside el
componente a accesar.
Arreglos multidimensionales
Se les llama así a aquellos arreglos que contienen dos o mas dimensiones.
Declaración de un arreglo de dos dimensiones: int[][] arreglo;
Creación de un arreglo de dos dimensiones: int[][] arreglo = new int[3][2];
Arreglos una dimensión o dos dimensiones
Cómo 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++;}
} }
Búsqueda de un elemento La búsqueda de un elemento es la
determinación de la localidad de un elemento con ciertas características.
Una salida de –1 indicaría que el elemento no se encontró.
Métodos de búsqueda Búsqueda secuencial Búsqueda binaria
Ejercicios
1. Leer un vector de dimensión 50 y contar el número de elementos mayores al promedio
2. Dado el vector A de dimensión 1000 imprimir el menor y el mayor valor, indicando su ubicación dentro del arreglo.
3. Leer dos vectores de dimensión 50 y determinar cual de ellos tiene el promedio mayor
4. Determinar cuantas veces se repite el valor x (ingresado por teclado) en un vector A de dimensión 1000 (considere los elementos ya ingresados)
Nota: para todos los enunciados considere vectores de tipo entero
Java collection framework
ArrayList
ArrayList Operaciones básicas Buscando elementos wrapper classes
Es una de las más básicas colecciones de java
La clase ArrayList
Class ArrayList<E> ArrayList, utilizar import java.util.*;
arrayString[] nombres = new String[5];
nombres[0] = "Jennifer";
String nombre = nombres[0];
ArrayListArrayList<String> listaNombres = new ArrayList<String>();
listaNombres.add("Jennifer");String nombre = listaNombres.get(0);
ArrayList vs. array
Añadiendo elementos
Los elementos son añadidos dinámicamente a la lista:ArrayList<String> lista = new
ArrayList<String>();System.out.println("lista = " + lista);lista.add(“Herramientas");System.out.println("lista = " + lista);lista.add(“Martillo");System.out.println("lista = " + lista);lista.add(“Clavos");System.out.println("lista = " + lista);
Salida:lista = []lista = [Herramientas]lista = [Herramientas, Martillo]lista = [Herramientas, Martillo, Clavos]
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]
Eliminando elementos
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 MartilloPinzas 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 método Descripción
add(value) adds the given value to the end of the list
add(index, value) inserts the given value before the given index
clear() removes all elements
contains(value) returns true if the given element is in the list
get(index) returns the value at the given index
indexOf(value) 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 válido!!! Se utilizan Clases Wrapper
ejemplo:ArrayList<Integer> lista = new ArrayList<Integer>();
Primitive type
Wrapper class
int Integer
double Double
char Character
boolean Boolean
Ejemplo Wrapper
La siguiente lista almacena valores int :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
index
0 1 2 3
valor 13 47 15 9
Longitud de Arrays Vs Longitud de Cadenas
String s;s.length();
longitud=lista.length;