Contenedores VI : Utilidades y Colecciones Estaticas

Pues… eso. Y si quiero una de solo lectura?

Nuestro querido java nos proporciona la clase Collection con un método para conseguir esto:

  • unmodifiableCollection Para colecciones en general
  • unmodifiableList Para las listas
  • unmodifiableSet Para los sets
  • unmodifiableMap Para los mapas
// SoloLectura.java
// usando métodos collection.unmodifiable
import java.util.*;
public class SoloLectura{
	static Map rellenar(Map m){
		// rellenamos el mapa de trabajo....
  		String[] claves = {"uno","dos","tres","cuatro","cinco"};
  		String[] valores = {"primer valor", "segundo valor", "tercer valor", "cuarto valor", "quinto valor"};
  		for(int i=0; i<5;i++){
  			m.put(claves[i],valores[i]);
  		}
		return m;
	}
	static Collection rellenar(Collection c){
		String[] valores = {"primer valor", "segundo valor", "tercer valor", "cuarto valor", "quinto valor"};
  		for(int i=0; i<5;i++){
  			c.add(valores[i]);
  		}
		return c;
	}
	public static void main(String[] args){
		Collection c = new ArrayList();
		rellenar(c);
		c= Collections.unmodifiableCollection(c);
		System.out.println(c); // lee pero 
		// c.add("uno");  	NO DEJA	ESCRIBIR
		//------------------------------------------------------->		
		List a = new ArrayList();
		rellenar(a);
		a= Collections.unmodifiableList(a);
		ListIterator listilla  =  a.listIterator();
		System.out.println(listilla.next()); //lee
		//-------------------------------------------------------->
		Set s = new HashSet();
		rellenar(s);
		s = Collections.unmodifiableSet(s);
		System.out.println(s);
		//-------------------------------------------------------->
		Map m = new HashMap();
		rellenar(m);
		m= Collections.unmodifiableMap(m);
		System.out.println(m);
	}

}

Por supuesto hay tantas utilidades como la gente quiera implementar…. Aqui os dejo algunas de las que nos provee java:

  • max(collection) y min(collection) devuelve el máximo y el minimo de la coleccion.
  • reverse() invierte el orden de la coleccion
  • copy(list a, list b) copia la coleccion a en la b
 
java/19.txt · Última modificación: 2008/05/13 10:00 (editor externo)
 
Excepto donde se indique lo contrario, el contenido de esta wiki se autoriza bajo la siguiente licencia:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki