Kako da dodam objekt u listu

Kako da dodam objekt u listu

offline
  • Pridružio: 10 Dec 2011
  • Poruke: 1

Imam problem da dodam nove reci u vec postojecu listu. Naime program radi delimicno, ukoliko zelim da izlistam sve ubacene reci (SWITCH 3) tada vidim nove reci ubacene na zadnje mesto u listi uz pomoc metode sa (SWITCHA 2).

Medjutim ukoliko zelim da pokrenem metodu test() uz pomoc
(SWITCHA 1) te nove reci se nikada ne pojave u listi. A trebalo bi.

Evo koda za sve 3 klase koje su po mom misljenju odgovorne za problem.

Problem je zadnja linija koda u metodi wordMenu() po meni ali nisam siguran. Kod inace prolazi kompilator samo sto ne dodaje naknadno ubacene reci u nov test.

import java.util.Scanner; /**  * Class which interacts with user using scanner.  * And runs the main method of the program.  *  * @author (Igor Mijatovic)  * @version 1.0(2011.11.06)  */ public class Menu {     public Scanner mScanner;     private static  TestGenerator mGenerator = new TestGenerator();     private WordDatabase mDatabase;        /**     * Constructor for objects of class Menu     *    */    public Menu()    {         mScanner = new Scanner(System.in);         mDatabase = new WordDatabase();    }        /**      * Main method that runs our program.      * From welcome menu trough test or adding new words.      * Up to the goodbye screen.      *      */    public void show()    {                login();                 while(true)         {             welcomeMenu();                         if(!mScanner.hasNextInt())             {                 System.out.println(mScanner.nextLine() + " är inte giltigt input");                 continue;             }             int option = mScanner.nextInt();                          switch(option)             {                 case 1:                     //clearScreen();                     Test test = mGenerator.generateNewTest();                     test.start();                                    break;                                 case 2:                     clearScreen();                     wordMenu();                      clearScreen();                 break;                                 case 3:                     clearScreen();                     listWords();                 break;                                 case 4:                      clearScreen();                      if(goodbyeMenu()){                           return;                      }                      else{                      }                 break;                                                                 default:                     System.out.println("--> Förstår inte <--");                 break;             }         }    }         /**     * Method that list all words currently in database.     *    */    private void listWords()    {         for(int i = 0; i < mDatabase.size(); i++)         {             System.out.println(mDatabase.get(i));         }         System.out.println();    }    /**      * Method that prints out welcome text.      * Helps with keeping main method easier to understand.      *      */    private void welcomeMenu()    {         System.out.println("Hej och välkommen till Igor's glostränare!");         System.out.println();         System.out.println("1.Kör glostest");         System.out.println("2.Registera ord");         System.out.println("3.Skriv ut alla glösor.");         System.out.println("4.Avsluta testet.");         System.out.println();         System.out.print("Vad vill du göra ? --> ");    }        /**     * Method that takes users name.     * Helps with keeping main method easier to understand.     *    */    private void login()    {        System.out.print("Ditt namn: ");        mScanner.nextLine();           System.out.print("\f");    }        /**      * Method that allows user to add new words into database.      *      */    private void wordMenu()    {            System.out.println();            System.out.println("Lägga till ord menyn");            System.out.println();            System.out.print("Svenska:-->");            String Svenska = mScanner.next();             System.out.println();            System.out.print("Engelska:-->");            String Engelska = mScanner.next();            System.out.println();            System.out.print("-->");                                System.out.println(Svenska + ":" + Engelska);            System.out.println();                        Word word = new Word(Svenska, Engelska);            mDatabase.add(word);         }     /**      * Method that creates goodbye screen.      *      */    private boolean goodbyeMenu()     {            System.out.println("Är du säker att du ska avsluta program");         System.out.println();         System.out.println(" 1 - avsluta");         System.out.println(" 2 - gå tillbaka");         System.out.print("-->");                 int input = mScanner.nextInt();         if(input == 1){             return true;         }                else{             return false;         }    }         /**      * Method that clears the screen allowing better overwiev.      *      */    private void clearScreen()    {       System.out.print('\u000C');    } }

Klasa test gde je mozda problem

import java.util.ArrayList; import java.util.Iterator; /**  * Class that runs test and counting results.  *  * @author (Igor Mijatovic)  * @version 1.0(2011.11.06)  */ public class Test {     private ArrayList<Word> mTestWords;     private int mScore;     /**      * Constructor for objects of class Test.      *      * @param is ArrayList wordlist from class Word.      */     public Test(ArrayList<Word> wordList)     {        mTestWords = wordList;        mScore=0;     }     /**      * Method which count and print out test results.      *      */     public void start()     {         System.out.println("Nu startar testet");         Iterator<Word> it = mTestWords.iterator();         while(it.hasNext())         {             if(it.next().answer())             {                 mScore++;             }         }         System.out.println("Testet avlklarat; " + mScore + "/" + mTestWords.size());     } }

Klasa TestGenerator koja kreira test

import java.util.ArrayList; /**  * This class generates tests using class RandomN and WordDatabase.  *  * @author (Igor Mijatovic)  * @version 1.0(2011.11.06)  */ public class TestGenerator {     private RandomN mRandom;        private WordDatabase mDatabase;         /**      * Constructor for objects of class TestGenerator.      *      */     public TestGenerator()     {         mDatabase = new WordDatabase();         mRandom = new RandomN(mDatabase.size());     }         /**      * Method that add new words to our wordlist.      *      * @param new (word).      */     public void addWord(Word word)     {         mDatabase.add(word);         mRandom = new RandomN(mDatabase.size());     }         /**      * Method which randomly pick values from our database.      *      * @return  Test randomly picked values from database list.      */     public Test generateNewTest()     {         ArrayList<Word> wordlist = new ArrayList<Word>();                 for(int i = 0; i < 10; i++)              {                int max = mDatabase.size();             Word word = mDatabase.get(mRandom.getRandomValue(max));             while(wordlist.contains(word))             {                 word = mDatabase.get(mRandom.getRandomValue(max));             }             wordlist.add(word);              }         return new Test(wordlist);             } }



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
Ko je trenutno na forumu
 

Ukupno su 1035 korisnika na forumu :: 40 registrovanih, 9 sakrivenih i 986 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: 357magnum, ajo baba, Apok, arsa, Brana01, celik, CikaKURE, Dimitrije Paunovic, DPera, drimer, havoc995, ikan, ivan1973, ivica976, janbo, Još malo pa deda, Karla, kolle.the.kid, ljuba, mikrimaus, milenko crazy north, Milometer, Milos ZA, moldway, Nikolaa11, PAGZLY, Romibrat, royst33, sap, ser.hill, slonic_tonic, Srle993, Stanlio, Stoilkovic, Toper, Trpe Grozni, tubular, VJ, vukovi, zixmix