Ok. Os explico, la clase hereda de AbstractCollection<Integer> y tiene un constructor que recibe dos números enteros, esos números son el máximo y el mínimo.
public class ColeccionRangoEnteros extends AbstractCollection<Integer> {
public int entero1;
public int entero2;
/*
* COnstructor que recibe dos enteros.
*/
public ColeccionRangoEnteros(int num1, int num2) {
this.entero1 = num1;
this.entero2 = num2;
}
En la práctica también hay que redefinir size y lo he hecho de la siguiente manera, y me ha funcionado :
public int size() {
int tamano = 0;
if (this.entero1 < this.entero2) {
for (int i = this.entero1; i <= this.entero2; i++)
++tamano;
} else {
if (this.entero2 < this.entero1) {
for (int i = this.entero2; i <= this.entero1; i++)
++tamano;
}
}
return tamano;
}
Mi problema viene a continuación, cuando debo redefinir Iterator.
@Override
public Iterator<Integer> iterator() {
//TODO
return null;
}
Para realizar las comprobaciones el profesor nos deja una clase que se encarga de ello. Os pongo aquí una parte del código que hace las comprobaciones.
public static void compruebaColeccionRangoEnteros( int n ) {
Collection<Integer> c1 = new ColeccionRangoEnteros(0, n);
assert !c1.contains(-1);
assert c1.contains(0);
assert c1.contains(n);
assert !c1.contains(n+1);
}
Bueno, siento si el mensaje ha sido largo y sería de gran ayuda si además encontráis algo que no está debidamente programado.
Un saludo.