【发布时间】:2013-08-20 17:39:47
【问题描述】:
我有 2 个类,LotSelection 和 LotGen,在一个名为 lotterynumberselector 的包中。 LotSelection 有 2 种方法:LotPool() 和 WinningSequence()。 LotPool() 旨在返回一个 ArrayList,其中包含从 0 到 49 的 50 个整数并对其进行打乱。 WinningSequence() 旨在创建一个 6 元素数组,其中包含 LotPool() 中生成的 ArrayList 中的前 6 个整数。
这是LotSelection的代码。
package lotterynumberselector;
import java.util.ArrayList;
import java.util.Collections;
public class LotSelection {
ArrayList<Integer> LotPool() {
ArrayList<Integer> sequencedraw = new ArrayList<Integer>();
for(int i = 0; i < 49; i++) {
sequencedraw.add(i);
}
Collections.shuffle(sequencedraw);
return sequencedraw;
}
int[] WinningSequence() {
int[] WinningSequence = new int[6];
int j = 0;
while (j < 6) {
WinningSequence[j] = LotPool().get(j);
j++;
}
return WinningSequence;
}
}
LotGen 的目的是测试LotSelection 创建的输出是否完成了预期的任务。但是,WinningSequence() 的输出与 LotPool() 创建的前六个数字不匹配,我想知道为什么。我不确定是不是因为LotGen 或LotSelection 中的代码产生了意外的结果。我怀疑这是因为 LotPool() 正在生成一个 50 元素的 ArrayList,而 WinningSequence() 正在创建另一个 LotPool(),所以它是从不同的 50 元素 ArrayList 中创建的数组,但我不确定。
这是LotGen的代码:
package lotterynumberselector;
import java.util.ArrayList;
import java.util.Arrays;
public class LotGen {
public static void main(String [] args) {
LotSelection a = new LotSelection();
ArrayList<Integer> LotPool = new ArrayList<Integer>();
LotPool = a.LotPool();
System.out.println(LotPool);
int[] WinSeq = new int[6];
WinSeq = a.WinningSequence();
System.out.println(Arrays.toString(WinSeq));
}
}
【问题讨论】:
-
首先,尊重 java 命名约定并将方法的第一个字母小写。另外,给他们适当的访问修饰符。
-
你能分享一下输出吗
-
你调用了6次
lotPool方法,可能是你想把它存储在一个变量中
标签: java list methods arraylist io