Java 如何计算ArrayList中的最小数?

Java 如何计算ArrayList中的最小数?,java,arrays,algorithm,for-loop,arraylist,Java,Arrays,Algorithm,For Loop,Arraylist,我编写了一个程序,用户将输入10个数字,最终这些数字将存储在arraylist中 当用户输入完数字后,我必须在ArrayList中找到最小的数字并打印出来 我的代码: package findingsmallestandbiggestnum; import java.util.Scanner; import java.util.ArrayList; public class FindingSmallestAndBiggestNum { public static void main

我编写了一个程序,用户将输入10个数字,最终这些数字将存储在arraylist中

当用户输入完数字后,我必须在ArrayList中找到最小的数字并打印出来

我的代码:

package findingsmallestandbiggestnum;

import java.util.Scanner;
import java.util.ArrayList;

public class FindingSmallestAndBiggestNum {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        ArrayList<Integer> uInput = new ArrayList();

        for (int i = 1; i <= 10; i++) {
            System.out.println("Enter 10 numbers: ");
            uInput.add(input.nextInt());
        }

        System.out.println("You have entered: " + uInput);

        //calculate the smallest integer in the array
        //for (int i = 0; i < uInput.length; i++) {
        //}
    }

}
包查找smallestandbiggestnum;
导入java.util.Scanner;
导入java.util.ArrayList;
公共类查找smallestandbiggestnum{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
ArrayList uInput=新的ArrayList();
对于(int i=1;i使用以下公式:

Collections.min(uInput);

只需运行列表并保存最小的元素:

int min = uInpunt.get(0);
for (int i = 1; i < uInput.size(); i++) {
    int curr = uInput.get(i);
    if (curr < min) {
        min = curr;
    }
}
System.out.println ("The smallest number is: " + min);
int min=uInpunt.get(0);
对于(int i=1;i
这是一个循序渐进的版本。也适用于没有数字的情况

Integer smallest;
for ( Integer num : uInput ) {
  if( smallest == null || num < smallest ) {
    smallest = num;
  }
}
最小整数;
for(整数num:uInput){
if(最小值==null | | num<最小值){
最小=num;
}
}
您可以使用


一个潜在的解决办法是建立一个最小的索引。在我的头脑中,这是一个未经测试的索引

int smallest = 0;

for(int i = 0; i < uInput.size(); i++) {
    if (uInput.get(i) < smallest) {
        smallest = uInput.get(i);
    }
}

你已经知道你想要最小的数字。在那一刻,想想你自己的电脑-你会如何寻找最小的数字,给定10个数字?一旦你有了,剩下的就刚好到位。旁注:包名应该清晰简洁。你如何找到最小值?当你对最小值/最大值感兴趣时,在阅读一系列无序数字时,你会怎么做?OP可能是在做作业,所以
Collections.min()
可能不是一个可行的解决方案。@GriffeyDog,也许但OP应该在问题中说明这一点。不过,您应该将
最小的
初始化为
null
,对吧?另外,
for
应该是小写。我认为这不适用于局部变量。
int smallest = 0;

for(int i = 0; i < uInput.size(); i++) {
    if (uInput.get(i) < smallest) {
        smallest = uInput.get(i);
    }
}
int smallest = uInput.get(0);