Resumen colecciones


public class ResumenColecciones {

	public static void main(String[] args) {
		//Las colecciones nos sirven para almacenar valores de forma dinámica
		// A diferencia de un array el tamaño no está definido de antemano
		// Hay muchos tipos de colecciones que se engloban en tres tipos:
		// List, Map y Set
		// List->Lista de objetos
		// Set ->Lista de objetos sin duplicados
		// Map-> Lista de pares clave,valor
		
		// Ejemplo de List: ArrayList
		// Lo definimos por el interfaz List
		List<String> productos=new ArrayList<String>();
		
		// Añadimos con add, elminamos con remove
		
		productos.add("Manzana");
		productos.add("Pera");
		productos.add("Melocotón");
		System.out.println(productos);
		productos.remove("Pera");
		System.out.println(productos);
		
		// Lo recorremos con for each
		for(String el:productos) {
			System.out.println(el);
		}
		
		// Lo cambiamos con set
		productos.set(0, "MAnzana Golden");
		System.out.println(productos);
		
		// Utilidades como contains, indexOf
		// Las utilidades de Collections: sort, shuflle, search...
		
		System.out.println(productos.contains("Melocotón"));
		
		// Puede ser de cualquier tipo
		List<Integer> foo1=new ArrayList<Integer>();
		List<Boolean> foo2=new ArrayList<Boolean>();
		List<Alumno> foo4=new ArrayList<Alumno>();
		List<Infanteria> foo3=new ArrayList<Infanteria>();
		List<LocalDate> foo5=new ArrayList<LocalDate>();
		
		// Para pares clave, valor tenemos HashMap
		// Que se implementa mediante su interfaz 'Map'
		
		Map<String,String> referencias=new HashMap<String,String>();
		
		// Se añaden elementos con el put
		referencias.put("QW23", "Tornillo fino 0.2mm");
		referencias.put("QW24", "Tornillo fino 0.4mm");
		referencias.put("QW25", "Tornillo fino 0.8mm");
		
		// Se eliminan con remove
		referencias.remove("QW24");
		
		// Se recorren por valores con foreach
		for(String el:referencias.values()) {
			System.out.println(el);
		}
		
		// Se recorren con clave y valor con EntrySet
		for(Map.Entry<String, String> el:referencias.entrySet()) {
			System.out.println(el.getKey()+" "+el.getValue());
		}
		
		// El tamaño tanto de ArrayList como HashMap está en size
		System.out.println(referencias.size());
		
		// Pueden ser usados como parámetros en funciones
		// Como propiedades en clases
		// Como valores de retorno en funciones
		
		Alumno pep=new Alumno("Pep",4);
		pep.addNota(8);
		System.out.println(pep.getFromNotas(0));
	}

}