我可以知道为什么我的arraylist中已经有元素吗?我发现了几乎类似的主题,并找到了解决方案是在for循环内创建arraylist对象,但我不想在不了解的情况下盲目地跟随它。
我尝试阅读Arraylist如何存储内存,当我查看代码时,这对我来说毫无意义。
import java.util.ArrayList;
public class HangmanLogic {
private String word;
private String guessedLetters;
private int numberOfFaults;
private ArrayList<String> letters;
public HangmanLogic(String word) {
this.word = word.toUpperCase();
this.guessedLetters = "";
this.numberOfFaults = 0;
this.letters = new ArrayList<String>();
}
public String hiddenWord() {
for (int i = 0; i < this.word.length(); i++)
{
char word = this.word.charAt(i);
String wordToString = Character.toString(word);
this.letters.add(wordToString);
System.out.println(this.letters);
}
System.out.println(this.letters);
return "";
}
}
预期结果:
[K, I, S, S, A]
实际结果:
[K, I, S, S, A, K, I, S, S, A]
尝试尝试我的代码以了解其工作原理,好像它是从[K, I, S, S, A, start, .....]
开始添加的
答案 0 :(得分:0)
好像您在两次调用hiddenWord()
方法。如果还没有,请使用contains()
方法来检查是否已经使用它们。
if( !this.letters.contains(wordToString))(
this.letters.add(wordToString);
System.out.println(this.letters);
}