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

时间:2014-12-05 15:53:32

标签: 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(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++) {
        //}
    }

}

5 个答案:

答案 0 :(得分:1)

使用此:

Collections.min(uInput);

答案 1 :(得分:1)

只需遍历列表并保存最小元素:

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);

答案 2 :(得分:0)

这是一步一步的版本。也适用于没有数字的情况。

Integer smallest;
for ( Integer num : uInput ) {
  if( smallest == null || num < smallest ) {
    smallest = num;
  }
}

答案 3 :(得分:0)

您可以使用Collections.min

int minElement = Collections.min(uInput);

答案 4 :(得分:-2)

潜在的解决方法是获得最小的索引。在未经测试的情况下,它将是

int smallest = 0;

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

如果你需要找到最大的数字,这个方法也可以正常工作,只需要反转逻辑。

编辑:没有意识到对不起。将最小值设置为0开始只有在找到最大数字时才会起作用,我的错误。更好的解决方案是在此线程的其他地方执行mureinik并设置

int smallest = uInput.get(0);