Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在ArrayList中查找最小值、最大值、平均值和_Java_Android - Fatal编程技术网

Java 在ArrayList中查找最小值、最大值、平均值和

Java 在ArrayList中查找最小值、最大值、平均值和,java,android,Java,Android,我正在写一个程序,从用户那里得到三个数字,并将其放入一个数组列表中,然后求和、平均值、最小值和最大值。我在求最小值时遇到问题。当我运行代码时,最小值总是零。如何解决此问题 int num = 0; int sum = 0; int avg = 0; int min = 0; int max = 0; int i = 0; ArrayList<Integer> array = new ArrayList<Integer&g

我正在写一个程序,从用户那里得到三个数字,并将其放入一个数组列表中,然后求和、平均值、最小值和最大值。我在求最小值时遇到问题。当我运行代码时,最小值总是零。如何解决此问题

    int num = 0;
    int sum = 0;
    int avg = 0;
    int min = 0;
    int max = 0;
    int i = 0;

    ArrayList<Integer> array = new ArrayList<Integer> ();

    Scanner input = new Scanner (System.in);

    for (i = 0; i < 3; ++i){

        System.out.println("Enter a number");
        num = input.nextInt();
        array.add(num);

        sum += num;

        if(num > max){
            max = num;
        }

        if(num < min){
            min = num;
        }

    }

    avg = sum / i;

    System.out.println("Sum: " + sum);
    System.out.println("Avg: " + avg);
    System.out.println("Max: " + max);
    System.out.println("Min: " + min);



 //Code Result

 //Enter a number
 // 10
 //Enter a number
 // 20
 //Enter a number
 // 30

 //Sum: 60
 //Avg: 20
 //Max: 30
 //Min: 0 <-- this is always zero

 }
int num=0;
整数和=0;
int平均值=0;
int min=0;
int max=0;
int i=0;
ArrayList数组=新的ArrayList();
扫描仪输入=新扫描仪(System.in);
对于(i=0;i<3;++i){
System.out.println(“输入一个数字”);
num=input.nextInt();
add(num);
sum+=num;
如果(数值>最大值){
max=num;
}
if(num//Min:0这是因为您将
Min
设置为
0
,并且它低于所有值。 你需要将它初始化为一个大的数字(比如说
整数.MAX_VALUE
),然后它就可以工作了

早上好,肖恩

您必须在循环外部初始化“min”值,并且必须将“min”初始化为大值,如“Integer.MAX_value”

无论如何,我将告诉您如何在没有循环的情况下找到某些元素:

要获得ArrayList的最大值,您不需要使用。您可以使用
集合API
查找它

Collections.max(arrayList);
Collections.min(arrayList);
它返回ArrayList中所有元素的最大值

要获取最小值,集合API中的函数无法找到它

Collections.max(arrayList);
Collections.min(arrayList);
这也行

求和和和平均值,你们必须用循环计算,在你们的程序中是可以的

您的代码必须是这样的

int num=0;
整数和=0;
int平均值=0;
int min=0;
int max=0;
int i=0;
ArrayList数组=新的ArrayList();
扫描仪输入=新扫描仪(System.in);
对于(i=0;i<3;++i){
System.out.println(“输入一个数字”);
num=input.nextInt();
add(num);
sum+=num;
}
max=Collections.max(数组);
min=Collections.min(数组);
平均值=总和/i;
System.out.println(“总和:+Sum”);
系统输出打印项次(“平均值:“+Avg”);
System.out.println(“Max:+Max”);
System.out.println(“Min:+Min”);
PD:必须导入java.util.Collections


祝你有愉快的一天

而不是
int min=0使用
int min=Integer.MAX\u值
在你的问题出现前几分钟,有一个类似的问题与同样的问题完全相同。(练习的重点可能完全是另一个问题-思考流。)(Blackbelt的评论类似地适用于
max
)(
PD
?)
你必须导入java.util.Collections
-或使用
java.util.
限定
集合