你如何找到ArrayList的最小值?

时间:2016-03-24 22:24:18

标签: java arraylist

我有一个名为children的数组列表,其中的对象在GUI中的某些整个值距离内移动,我需要找到这些值中最小的值并将其打印到控制台。

我很确定这需要for循环吗?我只是不知道如何正确地构建它以确保它看到"孩子"中的值。 ArrayList。 或者Eclipse中是否有一些内置功能来计算数组列表的最小值?

7 个答案:

答案 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的最小值。

  • 您可以使用名为 min 的集合类。
  • 此方法根据元素的自然顺序返回指定集合的​​最小元素/值。
  • 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 的最小值。

  • 您可以使用 for 循环而不是集合。

示例

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