Hallo, ich will eine Vereinigung von zwei Mengen. Mein Program gibt Error wie folgendes:
7
6
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
at Kapitel3.Menge.addElem(Menge.java:21)
at Kapitel3.Menge.vereinigung(Menge.java:50)
at Kapitel3.Menge.main(Menge.java:79)
Mein Code ist so:Was mache bei Vereinigung(Menge menge) als Fehler?
7
6
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
at Kapitel3.Menge.addElem(Menge.java:21)
at Kapitel3.Menge.vereinigung(Menge.java:50)
at Kapitel3.Menge.main(Menge.java:79)
Mein Code ist so:Was mache bei Vereinigung(Menge menge) als Fehler?
Java:
public class Menge implements Services{
private int anzahl;
private int dimension;
private int[] element;
Menge(int dimension){
this.dimension=dimension;
element=new int[dimension];
anzahl=0;
}
@Override
public boolean addElem(int value) {
if(this.isElem(value)!=-1){
return true;
}
else
element[anzahl]=value;
anzahl++;
return true;
}
@Override
public int isElem(int value) {
int index=0;
for(int i=0; i<element.length;i++){
if(element[i]==value){
index=i;
break;}
else {
index=-1;
}}
return index;
}
@Override
public int numberOfElem() {
return anzahl;
}
public Menge vereinigung(Menge menge){
Menge menge1= new Menge(4);
if(menge.numberOfElem()>menge1.numberOfElem()){
for(int i=0; i<menge.numberOfElem();i++)
menge1.addElem(menge.element[i]);
return menge1;}
else
for(int i=0;i<menge1.numberOfElem();i++)
menge.addElem(menge1.element[i]);
return menge;
}
public static void main(String args[]){
Menge menge=new Menge(7);
menge.addElem(1);
menge.addElem(2);
menge.addElem(3);
menge.addElem(4);
menge.addElem(5);
menge.addElem(6);
menge.addElem(7);
Menge menge1=new Menge(8);
menge1.addElem(1);
menge1.addElem(2);
menge1.addElem(3);
menge1.addElem(4);
menge1.addElem(9);
menge1.addElem(10);
System.out.println(menge.numberOfElem());
System.out.println(menge1.numberOfElem());
System.out.println(menge.vereinigung(menge1));
}
}
Zuletzt bearbeitet von einem Moderator: