LinkedList仅显示相同的输出。我正在尝试使用最后一个while循环,但是它不起作用。这是“鸭鸭鹅”的问题。我不应该使用索引。
19个名字
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;
}
}
答案 0 :(得分:0)
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之间的值。