code:
public class Insieme {
private final static int MAX = 100000;
public boolean[] elenco = new boolean[MAX];
//qui ho fatto un errore, mettendo MAX - 1 mi da un errore riguarda il numero di elementi dell'array
/** Costruttore senza parametri, crea un insieme vuoto */
public Insieme() {
for (int i = 0; i < MAX; i++){
this.elenco[i] = false;
}
}
//Costruttore con parametro che crea una copia dell'insieme passato
public Insieme(Insieme copia){
for (int i = 0; i < MAX; i++){
this.elenco[i] = copia.elenco[i];
}
}
//Metodo per l'inserimento di un intero all'interno dell'insieme
public boolean inserisci(int elemento){
if (elemento >= MAX) {
return false;
} else {
elenco[elemento] = true;
return true;
}
}
//Metodo che ritorna vero se l'elemento passato è contenuto nell'array di booelan
public boolean contiene(int elemento){
if(this.elenco [elemento])
return true;
else
return false;
}
//Metodo che restituisce true se l'insieme è vuoto
public boolean vuoto(){
boolean trovato = false;
for (int i = 0; i < MAX; i++) {
if (this.elenco[i]){
trovato = true;
//qui ho fatto un errore utilizzando il break, non so perchè ma nell'if non me lo prende
//return trovato;
//break;
} else {
trovato = false;
}
}
return trovato;
}
//Metodo che fa l'unione
public Insieme unione(Insieme altro) {
Insieme union = new Insieme();
for(int i = 0; i < MAX; i++){
if (this.elenco[i] || altro.elenco[i])
union.inserisci(i);
}
return union;
}
//Metodo che fa l'intersezione
public Insieme inters(Insieme altro) {
Insieme inters = new Insieme();
for (int i = 0; i < MAX; i++){
if(this.elenco[i] && altro.elenco[i])
inters.inserisci(i);
}
return inters;
}
//Metodo che fa la differenza
public Insieme diff(Insieme altro){
Insieme differenza = new Insieme();
for (int i = 0; i < MAX; i++){
if (this.elenco[i] && !altro.elenco[i])
differenza.inserisci(i);
}
return differenza;
}
//Metodo che da il numero di elementi inseriti
public int card() {
int count = 0;
for (int i = 0; i < MAX; i++)
if(this.elenco[i])
count++;
return count;
}
//Metodo per la stampa dell'insieme toString
public String toString(){
String testo = "Elementi di questo insieme: \n";
int count = 0;
for (int i = 0; i < MAX; i++){
if (this.elenco[i]){
testo += "\t " + i;
count++;
}
if (count == 5)
testo += "\n";
}
return testo;
}
//Metodo equals per vedere se due insiemi sono uguali
public boolean equals(Insieme altro){
boolean trovato = false;
for (int i = 0; i < MAX; i++) {
if (this.elenco[i] && altro.elenco[i])
trovato = true;
else
trovato = false;
}
return trovato;
}
}