LinkedList Файла IO выглядит одинаково через вывод - PullRequest
0 голосов
/ 20 января 2019

LinkedList показывает только тот же вывод. Я пытаюсь использовать последний цикл while, но он не работает. Это проблема "Duck Duck Goose". Я не должен использовать индексирование.

19 имен

http://collabedit.com/q248e

public class DuckDuckGoose {

public static void main(String[] args) {

    LinkedList<String> linkedlist = new LinkedList<String>();
    // add try catch to add list
    try {
        FileReader fr = new FileReader(...players.txt");
        Scanner inFile = new Scanner(fr);

        while (inFile.hasNextLine()) {
            linkedlist.add(inFile.nextLine());
        }
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }
    Iterator<String> iterator = linkedlist.iterator();

    // checks until the last list
    while (!iterator.hasNext()) {
        if (iterator.next().equals(getRandomBoolean())) {
            iterator.remove();
        }
    }
    System.out.println(linkedlist);
}

public static boolean getRandomBoolean() {
    return Math.random() < 10 * 0.5;
}
}

1 Ответ

0 голосов
/ 20 января 2019
if (iterator.next().equals(getRandomBoolean())) {

Это никогда не так, потому что итератор содержит String с, а не Boolean с, поэтому вы никогда не выполните iterator.remove();.

Вместо:

iterator.next(); // gets but ignores the next String.
if (getRandomBoolean()) {

Кроме того, ваш цикл никогда не выполняется:

while (!iterator.hasNext()) {

, поскольку итератор изначально имеет следующий элемент.

Удалите !.


Кроме того, это:

Math.random() < 10 * 0.5

Всегда верно, потому что Math.random() строго меньше 1, а 10 * 0.5 равно 5.

Бросьте 10 * или выберитезначение RHS <, которое находится между 0 и 1.

...