我有一个名为children的数组列表,其中的对象在GUI中的某些整个值距离内移动,我需要找到这些值中最小的值并将其打印到控制台。
我很确定这需要for循环吗?我只是不知道如何正确地构建它以确保它看到"孩子"中的值。 ArrayList
。
或者Eclipse中是否有一些内置功能来计算数组列表的最小值?
答案 0 :(得分:5)
如果你有正整数值和数组,你可以找到具有以下逻辑的最小值:
int [] numbers = {10, 20, 30, 40, 50};
int smallest = numbers[0];
for(int x : numbers ){
if (x < smallest) {
smallest = x;
}
}
System.out.println(smallest);
答案 1 :(得分:4)
Collection类具有静态方法,用于查找Collection中最小或最大的元素。例如:
x
答案 2 :(得分:0)
类似的东西:
double smallest= children.get(0);
for(double d: children){
if(smallest > d) smallest=d;
}
答案 3 :(得分:0)
您可以使用比较器http://beginnersbook.com/2013/12/java-arraylist-of-object-sort-example-comparable-and-comparator/
对arraylist进行排序一旦排序,选择第一个值,它将是最小值
答案 4 :(得分:0)
你是对的,你必须使用循环。您需要从列表中取出一个值,并将其与所有其他值进行比较。如果没有较小的那个,它就是最小的。如果有,你需要检查下一个。 Java代码可以像这样:
numberLoop: for(int number: children){
for(int numberToCompare: children){
if(numberToCompare < number)numberLoop.continue;
}
System.out.println(number);
break;
}
PS:它不是Eclipse提供的方法。它基本上只是一个编辑文本的程序(如Word)。这些方法由java API提供
答案 5 :(得分:0)
使用Java 8 Streams,
让arr是一个整数数组,
int[] arr = new int[]{54,234,1,45,14,54};
int small = Arrays.stream(arr).reduce((x, y) -> x < y ? x : y).getAsInt();
int large = Arrays.stream(arr).reduce((x, y) -> x > y ? x : y).getAsInt();
System.out.println(small);
System.out.println(large);
答案 6 :(得分:0)
您可以在JAVA ARRAY List中使用以下方法找到ArrayList的最小值: 方式1.使用Collection类查找ArrayList的最小值。
static <T extends Object & Comparable<? super T> min(Collection<? extends T> c)
示例
package com.javacodeexamples.collections.arraylist;
import java.util.ArrayList;
import java.util.Collections;
public class FindMinValueArrayListExample {
public static void main(String[] args) {
/*
* ArrayList containing student marks
*/
ArrayList<Integer> aListMarks = new ArrayList<Integer>();
//add elements to ArrayList
aListMarks.add(53);
aListMarks.add(67);
aListMarks.add(89);
aListMarks.add(43);
aListMarks.add(87);
aListMarks.add(71);
aListMarks.add(63);
aListMarks.add(45);
aListMarks.add(69);
aListMarks.add(53);
/*
* To find minimum value in ArrayList, use
* min method of Collections class.
*/
System.out.println( "ArrayList Min Value: " + Collections.min(aListMarks) );
}
}
输出是:
ArrayList Min Value: 43
方法 2:使用 for 循环查找 ArrayList 的最小值。
示例
package com.javacodeexamples.collections.arraylist;
import java.util.ArrayList;
public class FindMinValueArrayListExample {
public static void main(String[] args) {
/*
* ArrayList containing student marks
*/
ArrayList<Integer> aListMarks = new ArrayList<Integer>();
//add elements to ArrayList
aListMarks.add(53);
aListMarks.add(67);
aListMarks.add(89);
aListMarks.add(43);
aListMarks.add(87);
aListMarks.add(71);
aListMarks.add(63);
aListMarks.add(45);
aListMarks.add(69);
aListMarks.add(53);
//declare min and max value as the first element of the list
int min = aListMarks.get(0);
//declare min and max elements index as 0 (i.e. first element)
int minIndex = 0;
//Iterate through ArrayList
for(int i = 1; i < aListMarks.size(); i++ ){
/*
* If current value is less than min value, it
* is new minimum value
*/
if( aListMarks.get(i) < min ){
min = aListMarks.get(i);
minIndex = i;
}
System.out.println("ArrayList Min Value is: "
+ min
+ ", Found at index: "
+ minIndex
);
}
}
结果是
ArrayList Min Value is: 43, Found at index: 3