Ich habe eine Klasse Container, wo ein Benutzer eine beliebige Anzahl von Wörtern eingeben kann, bis er nichts eingibt. Ich habe addWord (Word) Methode, bei der jeder Eingang zu einer ArrayList Worte jedes Mal hinzugefügt wird, wenn do/while-Schleife ausgeführt wird. Ich übergebe Benutzereingabewert als Parameter, um die Methode addWord() bei jedem Durchlauf der Schleife zu verwenden.Warum druckt meine display() -Methode nicht alle ArrayList-Elemente?
Jetzt möchte ich alle Elemente eines Arrays mit display() Methode anzeigen, sobald die Do/While-Schleife nicht mehr ausgeführt wird. Aber aus irgendeinem Grund, wenn ich versuche, method display() aufzurufen, zeigt es nur ein leeres Array [].
Gibt es eine Möglichkeit, wie Sie helfen können?
import java.util.ArrayList;
import java.util.List;
public class Container {
private List<String> words;
public Container() {
}
public List<String> getWords() {
return words;
}
public void setWords(List<String> words) {
this.words = words;
}
public void addWord(String word) {
words = new ArrayList<String>();
words.add(word);
}
public void display() {
System.out.println(words);
}
}
Main-Methode:
import java.util.Scanner;
public class ContainerMain
{
public static void main(String[] args)
{
Container one = new Container();
Scanner myScan = new Scanner(System.in);
String word = "s";
do
{
word = myScan.nextLine();
one.addWord(word);
}
while (!word.equals(""));
if (word.equals("")) {
one.display();
}
else {
System.out.println("No hope fam");
}
}
}
Sie initialisieren Ihre ArrayList jedes Mal, wenn die Methode addWord aufgerufen wird. Sie haben nur das Wort, das beim letzten Anruf übergeben wurde. – prsvr