Java - Ayuda con ejercicio de JAVA

 
Vista:
sin imagen de perfil

Ayuda con ejercicio de JAVA

Publicado por Gonzalo (2 intervenciones) el 17/11/2014 16:48:34
Una bolsa puede ser definida como una colección de elementos entre los que no se establece ninguna relación de orden. Una vez que introducimos un elemento en la bolsa no podremos decir en qué posición va a quedar dicho elemento con respecto al resto de elementos de la bolsa. De la misma forma, al extraer un elemento de la bolsa todos tienen la misma posibilidad de ser extraídos. Teniendo esto en cuenta crea una interfaz Bag, que herede del interfaz Collection y cuyo objetivo sea definir el comportamiento de una bolsa. Bag debe tener al menos los siguientes métodos:
boolean add(E e). Añade el elemento especificado a la bolsa, devuelve true si la bolsa ha cambiado después de realizar la operación.

boolean addAll(Collection<? extends E> c). Añade a la bolsa todos los elementos de la colección pasada por parámetro. Devuelve true si la bolsa ha cambiado después de realizar la operación.

void clear(). Elimina todos los elementos de la bolsa

boolean contains(Object o). Comprueba si la bolsa contiene el elemento pasado por parámetro

boolean isEmpty(). Devuelve true si la bolsa no tiene elementos

public Iterator<E> iterator(). Devuelve un iterador que permite recorrer los elementos de la bolsa.

int size(). Devuelve el número de elementos de la bolsa

E extract(). Extrae un elemento de la bolsa, como todos los elementos tienen la misma probabilidad de ser extraídos deben usarse números pseudoaleatorios para decidir que elemento debe ser seleccionado

emptyIn(Bag<? super E> b). Vacía el contenido de la bolsa actual en la bolsa pasada por parámetro. La bolsa actual queda vacía

Crea ahora una clase que realice el interfaz Bag y le de una implementación a sus métodos (por ejemplo BagList si almacenáis los elementos en una lista). Como vemos, salvo los métdos extract y EmtyIn, el resto son métodos del interfaz Collection. Sin embargo, en Collection hay muchos más métodos que los aquí listados. Para no complicar en exceso el ejercicio podéis darle una implementación por defecto a esos métodos (dejando la implementación definitiva como optativa) y obviar la prueba de los mismos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder