Java 整数数组列表到较小整数数组

Java 整数数组列表到较小整数数组,java,arrays,Java,Arrays,我正在构建我的第一个程序。其思想是从文件中读取一系列问题,然后允许用户选择一些随机问题进行提问。例如,该计划将有30个问题。但是,用户一次可能只想练习5个问题。我第一次真正挂断了电话 我正在写一个方法,允许用户输入他们想问多少问题。该方法将输出一个由x个随机数组成的数组,这些随机数不超过问题的数量。然后,我计划使用该数组调用我已经成功构建的另一个方法中的实际问题 下面是该方法的代码 public int [] ranQuest(int numQs, int totalQs) { int

我正在构建我的第一个程序。其思想是从文件中读取一系列问题,然后允许用户选择一些随机问题进行提问。例如,该计划将有30个问题。但是,用户一次可能只想练习5个问题。我第一次真正挂断了电话

我正在写一个方法,允许用户输入他们想问多少问题。该方法将输出一个由x个随机数组成的数组,这些随机数不超过问题的数量。然后,我计划使用该数组调用我已经成功构建的另一个方法中的实际问题

下面是该方法的代码

public int [] ranQuest(int numQs, int totalQs) {

    int [] numberQs = new int [numQs];
    int maxNum = totalQs;

    ArrayList<Integer> allQs = new ArrayList(); 

    for (int x = 0; x < maxNum; x++) {
        allQs.add(x);
    }

    Collections.shuffle(allQs);

    for(int x = 0; x < numberQs.length; x++) {    
       numberQs[x] = allQs.get(x);
    }

    return numberQs;
}
当我为3、3或4、4的输入运行代码时,sudo可以工作。我没有得到一个outofbounds异常错误,但是数字的顺序与我期望的不同。当我为3、10或5、30运行代码时,我得到了一个outofbounds异常错误,Dumfound发现了我,因为我认为我的for循环是好的

我做了很多搜索,似乎我在尝试将整数转换为整数时遇到了问题,或者我的for循环填充整数数组是不对的。是否有一种方法或更好的方法,然后在路径Im上获取一个填充的X int数组,以便将它们混合起来,然后填充一个新的较小数组

提前谢谢 乔乔

换成

for (int quest : quests) {
    System.out.println(quest);
}
现在,如果数组包含例如元素10、11和12
您需要的任务[10]、任务[11]和任务[12]的值显然没有定义,因为数组只有三个元素。

提示:永远不要声明ArrayList类型的列表,而是使用list,它是ArrayList实现的类。这将允许您轻松地在不同的实现之间切换另一个流行的列表实现是LinkedList。所以只需进入列表myList=newarraylist;您应该检查foreach和foreach之间的差异,以便将来foreach的问题更少:因为:希望它能帮助您解决问题!谢谢你的提示。我在其他地方看到过这种情况,不知道发生了什么。你的提示澄清了一切,真让人沮丧。我一直在寻找我的方法中的错误,结果证明我的测试才是最要命的。谢谢你的快速修复。
for (int quest : quests) {
    System.out.println(quests[quest]);
}
for (int quest : quests) {
    System.out.println(quest);
}