Foros del Web » Programación para mayores de 30 ;) » Java »

Redefinición de containsAll(Collection<?> c)

Estas en el tema de Redefinición de containsAll(Collection<?> c) en el foro de Java en Foros del Web. Muy buenas a todos. Estoy haciendo una clase que hereda de AbstractCollection que se denomina ColeccionRangoEnteros que guarda una colección de enteros, pero solamente almacenando ...
  #1 (permalink)  
Antiguo 19/02/2013, 08:42
 
Fecha de Ingreso: mayo-2012
Mensajes: 60
Antigüedad: 11 años, 11 meses
Puntos: 0
Pregunta Redefinición de containsAll(Collection<?> c)

Muy buenas a todos.
Estoy haciendo una clase que hereda de AbstractCollection que se denomina ColeccionRangoEnteros que guarda una colección de enteros, pero solamente almacenando el extremo superior y el inferior en 2 atributos (de momento solo numeros positivos).

Lo que quiero hacer es redefinir el metodo containsAll para hacerlo más eficiente, es decir, yo solo le voy a pasar colecciones del tipo ColeccionRangoEnteros, entonces me basta comprobar que el extremo superior y el inferior son menor o igual y mayor o igual (respectivamente) que el de la colección actual.
Pero no consigo encontrar la forma de redefinirlo para poder usar las operaciones que me permiten los enteros.

Si queréis el codigo que tengo hasta ahora os lo pongo.

Un saludo y muchas gracias.
  #2 (permalink)  
Antiguo 19/02/2013, 10:05
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Redefinición de containsAll(Collection<?> c)

¿ Para qué redefinirlo si puedes crear tu propio metodo contieneTodos(Collection<Integer> c); ?
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #3 (permalink)  
Antiguo 21/02/2013, 14:44
 
Fecha de Ingreso: mayo-2012
Mensajes: 60
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: Redefinición de containsAll(Collection<?> c)

Por que tengo otra clase principal con main que llama a esa función pero con containsAll y no puedo cambiarla :(
  #4 (permalink)  
Antiguo 22/02/2013, 02:42
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Redefinición de containsAll(Collection<?> c)

Bien... si que has tardado en contestar.

Prueba a hacer esto

/** Metodo sobreescrito **/
public boolean containsAll(Collection<?> c) {

if (c.instanceOf(Collection<Integer>) {
// Tu implementación con lo que quieras hacerle
} else { // Dejas esto para el resto de colecciones
Iterator<?> e = c.iterator();
while (e.hasNext()) {
if (!contains(e.next())) {
return false;
}
}
return true;
}
}
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #5 (permalink)  
Antiguo 23/02/2013, 07:39
 
Fecha de Ingreso: mayo-2012
Mensajes: 60
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: Redefinición de containsAll(Collection<?> c)

Muchisimas gracias, no sabía que se podía hacer de esa manera =))
Un saludo

Etiquetas: collection, metodos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:12.