我想制作一个从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,但它不会。你能帮我找到错误吗?
答案 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));