mercredi 7 septembre 2022

How do I pass an ArrayList

New to Java coding, please bear with me. I'm trying to pass my ArrayList chosenWords held in my method getChosenWords(int length) to my method getRandom(int length). I need the ArrayList so I can chose a random index and return a random string.

Note, it's not declared in the Class fields and I am not able to change the parameters of my methods. I have to find another way to pass the ArrayList in but I'm unsure how to. The unit test uses these set parameters and I can't change parameters or the fields as other classes rely on them staying the same.

I'm pretty sure this is the line that needs changing ArrayList<String> chosenWords; and currently I have an error variable not initialised on this line. random.nextInt(chosenWords.size());

Any suggestions?

Method1

// Takes strings in ArrayList words and stores strings with char int length to ArrayList chosenWords

public ArrayList<String> getChosenWords(int length) {
       ArrayList<String> chosenWords = new ArrayList<>(); 
       
       for(String word1 : words) {
            if(word1.length() == length) {
                 chosenWords.add(word1);
            }
       }
       return chosenWords;  
}

Method2

//Returns a randomly selected string from ArrayList chosenWords

public String getRandom(int length) {
    ArrayList<String> chosenWords;
    Random random = new Random();
    int randomIndex = random.nextInt(chosenWords.size());
    return chosenWords.get(randomIndex);        
}



Aucun commentaire:

Enregistrer un commentaire