Új hozzászólás Aktív témák

  • orc88

    őstag

    válasz RexpecT #10222 üzenetére

    Google Drive-ba felraktam kompletten ami kell a feladathoz, és ahol elakadtam.

    Pastebin a fő osztályról.
    Ami még kellhet hozzá a 'tranzakció' osztály (tranzak.java):
    public class tranzak {
    public int id;
    public ArrayList<String> term;

    public tranzak(ArrayList<String> _term) {
    this.term = _term;
    }

    public tranzak(int _id, ArrayList<String> _term) {
    this.id = _id;
    this.term = _term;
    }

    public void getTerm() {
    for (int i = 0; i <= this.term.size()-1; i++) {
    System.out.println(this.term.get(i));
    }
    }

    public void addTerm(String _ujterm) {
    this.term.add(_ujterm);
    }

    }

    Amire rájöttem időközben:
    Main.class-ban van egy ciklus ami a problémámat okozza:
    int index = 1;
    ArrayList<String> temp = new ArrayList<String>();
    tranzak temptranz = new tranzak(0, temp);
    for (int i = 0; i <= beolv.size()-1; i++) {
    if (beolv.get(i).equals("F")) {
    temptranz.id = index;
    System.out.println(temptranz.id);
    System.out.println(temptranz.term);
    //Idáig minden OK, szépen megkapja az (átmeneti) tranzakció az azonosítóját és a terméklistát
    trs.add(temptranz);
    //Beállítom a változókat a következő tranzakcióhoz
    ind++;
    temptranz.id = 0;
    temptranz.term.clear();
    } else {
    temptranz.addTerm(beolv.get(i));
    }
    }

    //Viszont amikor kiiratnám a végleges tranzakciókat tartalmazó listát már rossz ID-t és üres terméklistát kapok vissza
    for (int i = 0; i <= trs.size()-1; i++) {
    System.out.println(trs.get(i).id);
    System.out.println(trs.get(i).term);
    }

    Itt a temptranz-ba gyűjtögetem az információkat mind addig amíg "F"-et tartalmazó sort nem talál a ciklus. Ha "F"-hez ér, akkor az eddig összegyűlt adatokkal az átmeneti temptranz objektumot egy az egyben hozzáadnám az ArrayListhez ami tranzakcio objektumokat tartalmaz. A probléma ott jön elő, hogy a trs.add(temptranz); sor után kinullázom az ideglenes Stringeket tartalmazó Listát, és valamiért (ezt lehet tudnom kéne :B ) hiába adtam már hozzá az objektumot, kitörli belőle a String lista tartalmát és üresen adja át :U

    Szóval a probléma okára nagyjából rájöttem, közben meg is oldottam Listák nélkül a feladatot, de kíváncsi lennék, hogy mi okozza pontosan, és hogyan kerüljem el a jövőben az ebből adódó hibákat. :B

    Ui.: a sok próbálkozás és ctrl+c / ctrl+v után lehet maradt benne 1-2 fölösleges sor és csúnyán nézhet ki, utólag is bocsi :P

Új hozzászólás Aktív témák