好的,我有这个程序可以输入单个数字 0-9。然后计算每个数字与输入的数字总数相比出现的次数,并将每个数字出现的次数存储在 timesOccured[] 数组中。 value 是数字出现的次数,index 是数字,所以如果 timesOccured[1] == 15,则 1 出现了 15 次。
我有一个名为 leastCommonNumbers 的 ArrayList,它是 4 个最不常见数字的列表。然后,我有一个名为 recommendedNumbers 的 ArrayList,它是四个 leastCommonNumbers 中的三个的四种可能组合。
除了没有生成 ArrayList recommendedNumbers 之外,这里的一切都工作正常......这一定是某种逻辑缺陷,但我无法弄清楚为什么它不起作用......这是声明:
List<Integer> leastCommonNumbers = new ArrayList();
List<String> recommendedNumbers = new ArrayList();
double timesOccured[]={0,0,0,0,0,0,0,0,0,0}
代码如下:
double[] nums = timesOccured;
double temp;
int temp2;
leastCommonNumbers.clear();
recommendedNumbers.clear();
for(int al = 0; al<nums.length;al++){
for(int al2 = 0;al2<nums.length-1;al2++){
if(nums[al2] > nums[al2+1]){
temp = nums[al2];
nums[al2]=nums[al2+1];
nums[al2+1]=temp;
}}}
for(int b = 0; b ==3;b++){
for(int r = 0; r<nums.length; r++){
if(nums[b] == timesOccured[r]){
leastCommonNumbers.add(r);
}}}
for(int y = 0; y == 3; y++){
int t = 0;
recommendedNumbers.add(String.valueOf(leastCommonNumbers.get(t))+String.valueOf(leastCommonNumbers.get(t+1))+String.valueOf(leastCommonNumbers.get(t+2)));
temp2 = leastCommonNumbers.get(0);
for(int a = 0; a == 3; a++){
if(a < 3){
leastCommonNumbers.set(a, leastCommonNumbers.get(a+1));
}else{
leastCommonNumbers.set(a, temp2);
}}}
timesOccured 被初始化为全 0,并且在程序的运行过程中不断变化。运行此命令后,当我尝试使用 recommendedNumbers 时,出现错误,提示 recommendedNumbers 的大小为 0,即没有值。
很迷茫...
最佳答案
您的 for
的状况循环总是假的:
for(int b = 0; b == 3;b++){
...
for(int y = 0; y == 3; y++){
所以循环永远不会被执行。我猜你想用 <=
相反:
for(int b = 0; b <= 3;b++){
...
for(int y = 0; y <= 3; y++){
关于java - 未生成值的 ArrayList...代码特定,java/android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18578976/