为什么我的ArrayList中已经有元素?

时间:2019-04-26 11:40:15

标签: java

我可以知道为什么我的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, .....]开始添加的

1 个答案:

答案 0 :(得分:0)

好像您在两次调用hiddenWord()方法。如果还没有,请使用contains()方法来检查是否已经使用它们。

if( !this.letters.contains(wordToString))(
    this.letters.add(wordToString);
    System.out.println(this.letters);
 }