public class Example {
public static void main(String [] args) {
String [] wombology;
wombology = new String[3];
wombology[0] = "History of Wombology";
wombology[1] = "Why Wombology";
wombology[2] = "Wombology and Me";
Random book = new Random(System.currentTimeMillis());
Scanner choice = new Scanner(System.in);
String yourChoice;
do {
System.out.println("Press enter for random book");
yourChoice = choice.nextLine();
if(yourChoice.equals("")) {
System.out.println(wombology[randomizer.nextInt(3)]);
System.out.println();
}
if(yourChoice == "EXIT") {
break;
}
} while(!yourChoice.equals("EXIT"));
}
}
如果随机选择,我怎么能从阵列中取出一本“书”?
我怎么能把以后的“书”放回到阵列中?
示例:“Wombology的历史”是随机选择并取出。
下一个随机选择不应包括“Wombology的历史”,直到它被放回去。
仅指“为什么选择Wombology”和“Wombology and Me”应该是唯一可能的选择。
答案 0 :(得分:1)
我假设这是作业,ArrayList
是不可能的。而且我不想给出完整,详细的答案。
一个选项可能是创建并行数组boolean isCheckedOut[]
,并在那里跟踪您的图书。
答案 1 :(得分:0)
您需要自己管理阵列。这意味着您需要知道数组的实际大小和填充大小。这是因为一旦创建了数组,大小就无法改变。
如果从阵列中删除对象,则需要将相邻元素移向该位置。
例如,您的数组如下所示:
[A|B|C|D|E|F]
allocatedArraySize = 6
currentSize = 6
如果您删除位于C
的{{1}},则必须将2
移至左侧。您也可以将最后一个位置设为null。
D, E, F
要插入,只需使用:
[A|B|D|E|F|null]
allocatedArraySize = 6
currentSize = 5
答案 2 :(得分:0)
您必须在技术层面上“定义”“取出书籍”的操作。我可以为这个
想出两种可能性null
由于大多数书籍的标题由一个或多个字母组成,空字符串提案似乎也是有效的。
第二个任务(将一本书放回到数组中)可以用类似的方式处理。在这里你必须找到一个空位(一个带有空字符串的数组位置/ null作为内容)并为其指定书名。
关于随机数发生器并且不允许已经删除的书籍:您可以使用上述条件重新运行随机数发生器,即直到在数组中找到非空字符串/非空元素。如果找到一个,这是一个有效的选择。但要注意,如果您删除了所有书籍,随机数发生器将永远不会停止运行(因为它只找到无效的选择,因此永远不会返回)。在这里你可以使用一个额外的检查条件:如果数组只包含空字符串/空值,则不需要运行随机数发生器。
希望有帮助...