Re: How to add item on list
What does that Test class do?
Re: How to add item on list
Here is the code for both Test and TestGenerator class.
TestGenerator class generates simple test using random class to pick 10 words(swedish,english)
and make simple test for user.
Code:
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());
}
}
Code:
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);
}
}
Re: How to add item on list
Looks like you should be passing mDatabase to that call to generateNewTest
Re: How to add item on list
Quote:
Originally Posted by
al_Marshy_1981
Looks like you should be passing mDatabase to that call to generateNewTest
If you think on
Code:
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); //mDatabase.add(word) It does compile but never fills the list i get null as value.
}
return new Test(wordlist);
}
I just get message from start() method last line - i guess wordlist never get values.