我正在创建一个程序,我在其中声明了一个Stack,并将其命名为“words”。我使用了这段代码,如下:
Stack <String> words = new Stack<String>();
但是当我尝试使用此代码对其中的单词进行随机播放时,会出现关于它的错误:
Collections.shuffle(words);
int mistakes = 0;
final String CORRECT_WORD= words[0];
我该如何解决此错误?
答案 0 :(得分:8)
如果您需要words
中的第一个值,请使用pop()
:
final String CORRECT_WORD = words.pop();
或Vector
的{{1}}。
elementAt(0)
答案 1 :(得分:3)
final String CORRECT_WORD= words[0];
Java Collections不支持类似C ++的数组语法。相反,您必须使用API中的方法。在这种情况下,您需要使用[Stack.pop()][1]
:
final String CORRECT_WORD= words.pop();
Java API docs是一个非常有用的工具,可以告诉您每个接口和类有哪些方法可用。由于您使用的是Stack类,因此您应该熟悉docs for Stack。
答案 2 :(得分:2)
堆栈旨在让您访问最后添加的元素(即它是LIFO,后进先出),这使得混乱成为问题。
如果要将这些单词混洗,将它们放入List(例如ArrayList)中,将它们混洗,然后在它们被洗牌后将它们放入堆栈或队列中。