2014-07-01 65 views
-6

我想用从0-9中随机选取的100个数字制作一个数组列表。 然后,我想java打印数组列表中的平均值和最常用的数字。我的退货声明不起作用。我做错了什么?

这是我的代码:

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打印最大和gemiddelde在屏幕上,但它不会。你能帮我找到错误吗?

+3

有什么实际问题? '它不'不是一个错误或输出! – RossC

+2

也许你应该添加一些像System.Out.Println()那样打印它的东西?否则什么都不会打印。 –

回答

1

您打印到控制台是这样的:

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

如果你只想打印,所以打印。您的方法返回的内容不会打印此值。其实你从most()根本没有返回使用价值:

most(list1); 

如果要打印使用:

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

现在开始学习java。

0

对于nextInt请阅读javadoc

有时它可以帮助别人有更清晰的名字。 您切换了计数和输入。

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

一些变化:

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

    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; 
    } 
    
  • 打印出来使用系统输出:

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

对不起,格式不对。我新来stackoverflow – ChetanSankhala

+0

取代**计数**与输入**大多数()**方法。 无法对主要问题发表评论。没有足够的声誉。 – ChetanSankhala

+0

谢谢dav_i格式化.. :) – ChetanSankhala

相关问题