Sign in to follow this  
Followers 0

addAktietoPortfolio()

3 posts in this topic

Posted

Hallo

Wie kann ich Aktie zu Portfolio hinzufügen. In der Klasse Boerse habe ich addAktietoPortfolio() Methode.Aber

Ich konnte nicht diese Methode erstellen. <:'(

Kann jemand mir posten?

Share this post


Link to post
Share on other sites

Posted

Bidde

public void addAktieToPortfolio(String portfolioName, String aktienKuerzel, int stueckzahl){

Aktie gesaktie = null;

Portfolio gesportfolio = null;

Iterator<Aktie> aktieniterator = this.aktie.iterator();

while(aktieniterator.hasNext()){

Aktie akt = aktieniterator.next();

if (akt.getKuerzel().equalsIgnoreCase(aktienKuerzel) == true){

gesaktie = akt;

}

}

Iterator<Portfolio> portiterator = this.portfolio.iterator();

while(portiterator.hasNext()){

Portfolio port = portiterator.next();

if (port.getName().equalsIgnoreCase(portfolioName) == true){

gesportfolio = port;

}

}

gesportfolio.addEintrag(new Portfolioeintrag(gesaktie, stueckzahl));

}

public void removeAktieFromPortfolio(String portfolioName, String aktienKuerzel){

Iterator<Portfolio> portiterator = this.portfolio.iterator();

while(portiterator.hasNext()){

Portfolio port = portiterator.next();

if (port.getName().equalsIgnoreCase(portfolioName) == true){

Iterator<Portfolioeintrag> porteintragiterator = port.getEintraege().iterator();

while(porteintragiterator.hasNext()){

Portfolioeintrag porteintrag = porteintragiterator.next();

if (porteintrag.getAktie().getKuerzel().equalsIgnoreCase(aktienKuerzel) == true){

port.removeEintrag(porteintrag);

}

}

}

}

}

Share this post


Link to post
Share on other sites

Posted

Ich hab auch ein "klein-grosses" Problem :) mit dieser Methode sowie mit addAktieToIndex() (die natürlich aneinander ganz ähnlich sind)!

hab noch nicht die Presenter in den Klassen Aktienindex und Portfolio implementiert, und wolte zuerst ausprobieren wie es im Konsole-Fenster ausschaut, und zuletzt wenn ich die TestKlasse ausführe bekomme ich am K-Fenster die nächste Ausgabe:

-----------------------------------------------------------------------------------

Index "ATX-Five" hat sich geaendert: Indexstand = 0.0

Index "ATX-Five" hat sich geaendert: Indexstand = 0.0

Index "ATX-Five" hat sich geaendert: Indexstand = 0.0

Index "ATX-Five" hat sich geaendert: Indexstand = 0.0

Index "ATX-Five" hat sich geaendert: Indexstand = 0.0

Portfolio "CB1" hat sich geaendert: Portfoliowert = 0.0

Portfolio "CB1" hat sich geaendert: Portfoliowert = 0.0

Portfolio "CB1" hat sich geaendert: Portfoliowert = 0.0

-----------------------------------------------------------------------------------

Das heisst, dass man der Wert des Indexstandes, bzv. des Portfolios nach dem Hinzufügen jeweiliger Aktie gar nicht berechnet, es bleibt imer "0.0". Als ich versuchte, das Program stückweise auszuführen, hab ich entdeckt, dass, konkret fürs Portfolio, ein Teil der Methode "calculateAndGetPortfolioWert()" von JVM übersprungen wird und zwar die "while-Schleife"! Also, Problem ist, dass Iterator der Portfolioeinträge: "peItereator" auch stets am "0" bleibt (es gibt keinen Portfolioeintrag zum Vector "portfolioEintraege" hinzugefügt!)

Ich weiss nun nicht, woran liegt das, da die Anweisung:

portfolioEintraege.add(new PortfolioEintrag(a, stueckzahl));

in "addAktieToPortfolio()" ohne Probleme funktioniert!! Was muss ich dann im Code verändern und wie?

Bitte dringlich um Hilfe! Danke im Voraus!

Hier sind die notwendige Methoden für die Berechnung des Portfoliowertes:

*******************************************************************************

public void addAktieToPortfolio(String portfolioName, String aktienKuerzel, int stueckzahl) {

Iterator<Portfolio> pofolIterator = myPortfolios.iterator();

Iterator<Aktie> aktieIterator = myAktien.iterator();

Portfolio p = null;

Aktie a = null;

while(aktieIterator.hasNext()) {

a = (Aktie) aktieIterator.next();

if(a.getKuerzel().equals(aktienKuerzel)) {

portfolioEintraege.add(new PortfolioEintrag(a, stueckzahl));

}

while(pofolIterator.hasNext()) {

p = (Portfolio) pofolIterator.next();

if(p.getName().equals(portfolioName)) {

a.registerInterest(p);

p.sendNotify(portfolioName);

}

}

}

}

***************************************************************************

public void sendNotify(String s) {

System.out.println("Portfolio \"" + s + "\" hat sich " + "geaendert: Portfoliowert = "

+ this.calculateAndGetPortfolioWert() + "\n");

}

***************************************************************************

public double calculateAndGetPortfolioWert() {

double portfolioWert = 0;

Iterator peIterator = portfolioEintraege.iterator();

PortfolioEintrag pe = null;

//DIESER TEIL DER METHODE WIRD BEIM AUSFÜHREN DES CODES ÜBERSPRUNGEN

while(peIterator.hasNext()) {

pe = (PortfolioEintrag) peIterator.next();

portfolioWert += pe.getPortfolioEintragWert();

}

//--------------------------------------------------------------------------------------------------------

return portfolioWert;

}

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0