Servus Community,
Nein leider ihr seid mich auch im neuen Jahr noch nicht ganz los^^
Ich habe ein Beispiel mit 1 rekursiven Methode, die alle indirekten Verbindungen ausprobieren soll. Wenn es eine gibt true zurück geben und wenn nicht false. Leider klappt dass bei mir nicht so ganz, hättet ihr eine Idee woran das liegen kann?
Hier mein Code:
Normalerweise hätte ich ja ein Hashset statt einer ArrayList für die Lieferanten genommen, aber dann habe ich bei der rekursiven Methode noch weniger Plan.
Mit freundlichen Grüßen
El Hadji
Nein leider ihr seid mich auch im neuen Jahr noch nicht ganz los^^
Ich habe ein Beispiel mit 1 rekursiven Methode, die alle indirekten Verbindungen ausprobieren soll. Wenn es eine gibt true zurück geben und wenn nicht false. Leider klappt dass bei mir nicht so ganz, hättet ihr eine Idee woran das liegen kann?
Hier mein Code:
Code:
package supply;
import java.util.*;
public class Firma
{
private String name;
private ArrayList<Firma> lieferanten;
private double umsatz;
private Firma lieferant;
private ArrayList<Firma> verbindung;
private boolean ergebnis;
public Firma(String name)
{
this.name=name;
this.lieferanten=new ArrayList<Firma>();
}
public String getName()
{
return name;
}
public boolean addLieferant(Firma lieferant, double umsatz)
{
if(!lieferanten.contains(lieferant))
{
lieferanten.add(lieferant);
lieferant.umsatz=umsatz;
return true;
}
return false;
}
public ArrayList<Firma> getLieferanten()
{
return lieferanten;
}
public double getUmsatzanteilVon(Firma lieferant)
{
double gesamtumsatz = 0;
for (int i = 0; i<lieferanten.size(); i++)
{
gesamtumsatz += lieferanten.get(i).umsatz;
}
if(!lieferanten.contains(lieferant))
{
return 0;
}
else return (lieferant.umsatz/gesamtumsatz)*100;
}
public boolean hatLieferverbindungVon(Firma lieferant)
{
this.verbindung=new ArrayList<Firma>();
this.ergebnis=false;
return findeVerb(lieferant,this,verbindung);
}
public boolean findeVerb(Firma lieferant,Firma start,ArrayList<Firma> verbindung)
{
if(start == lieferant)
{
return true;
}
for(Firma fa:start.getLieferanten())
{
if(!verbindung.contains(fa))
{
verbindung.add(fa);
return findeVerb(lieferant,fa,verbindung);
}
}
return false;
}
}
Normalerweise hätte ich ja ein Hashset statt einer ArrayList für die Lieferanten genommen, aber dann habe ich bei der rekursiven Methode noch weniger Plan.
Mit freundlichen Grüßen
El Hadji