我的return语句不起作用。我做错了什么?

时间:2014-07-01 10:49:15

标签: java arrays collections arraylist return

我想制作一个从0-9中随机选择100个数字的arraylist。 然后我希望java打印arraylist中的平均值和最常用的数字。

这是我的代码:

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

public class exercarrlist {

//main method
public static void main(String[] args) {

    ArrayList<Integer> list1 = new ArrayList<Integer>();
    Random n = new Random();

    for(int i=0;i<100;i++){
        list1.add(n.nextInt(9));
    }
    Average(list1);
    most(list1);
}

//average
public static int Average(ArrayList<Integer> input){
    int sum = 0;
    for (int getal: input) {
         sum +=getal;
  }
    int gemiddelde = sum / input.size();
    return gemiddelde;
}
//most seen in arraylist
public static int most(ArrayList<Integer> input){
    int[] counts = {0,0,0,0,0,0,0,0,0,0};
    for(int getal: counts){
        counts[getal]++;
    }
    int max = 0;
    for(int i = 0; i < counts.length; i++){
        if(counts[i]>max){
            max=i;
        }
    }
    return max;

}
}

我希望java在屏幕上打印max和gemiddelde,但它不会。你能帮我找到错误吗?

4 个答案:

答案 0 :(得分:1)

您可以像这样打印到控制台:

System.out.println(average(list1)); //average should be downcased, it's not a class
System.out.println(most(list1));

答案 1 :(得分:0)

如果您只是想打印,那么打印。您的方法返回某些内容的事实不会打印此值。实际上你根本没有使用从most()返回的值:

most(list1);

如果您想打印使用:

System.out.println(most(list1));

现在开始学习java。

答案 2 :(得分:0)

对于nextInt,请阅读javadoc

有时它可以帮助其他人拥有更清晰的名字。 你切换了计数和输入。

int[] countsIndexedByGetal = new int[10]; // All zeero.
for (int getal: inputs) {
    countsIndexedByGetal[getal]++;
}

答案 3 :(得分:0)

一些变化:

  • 大多数(list)方法应该是这样的,我认为你的第一个循环是错误的。

    public static int most(ArrayList<Integer> input){
        int[] counts = {0,0,0,0,0,0,0,0,0,0};
    
        for(int getal: **input**){
            counts[getal]++;
        }
    
        int max = 0;
        for(int i = 0; i < counts.length; i++){
            if(counts[i]>max){
                max=i;
            }
        }
    
        return max;
    }
    
  • 打印使用sysout:

    System.out.println(Average(list1));
    System.out.println(most(list1));