我编写了一个程序,用户将输入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++) {
//}
}
}
答案 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);