从不同类的数组中获取元素

时间:2018-10-25 19:32:19

标签: java arrays class oop

我的Maraton课看起来像这样:

public class Maraton implements IMaraton {
private Atleticar[] niza;
public Maraton(Atleticar[] niza) {
    super();
    this.niza = niza;
}

然后我将Atleticar归类为:

public class Atleticar{

private double vreme;

public double getVreme() {
    return vreme;
}
public void setVreme(double vreme) {
    this.vreme = vreme;
}

我想在Maraton中使用make函数,使我得到最短的“ vreme”。 我很难实现这种方法,因为我是Java新手。任何意见,将不胜感激。提前Tnx。

4 个答案:

答案 0 :(得分:2)

您可以遍历数组并找到所有值中的最短值。

#!/bin/bash

OUTPUT="$(pmset -g | grep hibernatemode)"
HIBERNATE3=" hibernatemode        3"
HIBERNATE25=" hibernatemode        25"

if [ "$OUTPUT" = "$HIBERNATE3" ]

 then 
  pmset -b hibernatemode 25
  echo Hibernatemode set to 25 - DISK

elif [ "$OUTPUT" = "$HIBERNATE25" ]

 then
  pmset -b hibernatemode 3
  echo Hibernatemode set to 3 - RAM

else
  echo Unsuccessful!

fi

答案 1 :(得分:1)

这个想法很简单:您必须遍历数组以计算最小的元素。

但这似乎是函数式编程的一个很好的用例:

OptionalDouble min = 
Arrays.stream(niza)
      .mapToDouble(Atleticar:getVreme)
      .min();

然后根据您的要求处理OptionalDouble状态。

答案 2 :(得分:0)

您可以执行以下操作:

public Atleticar getFastestOne(){
  Optional<Atleticar> optAtleticar = Arrays.stream(niza).min(Comparator.comparing(Atleticar::getVreme));
  if(optAtleticar.isPresent()){
     return optAtleticar.get();
  }
  return null;
}

答案 3 :(得分:0)

类似这样的东西:

public static int getMinVreme(int[] array) {
    int minValue = array[0].getVreme;
    for (int i = 1; i < array.length; i++) {
        if (array[i].getVreme < minValue) {
            minValue = array[i].getVreme;
        }
    }
    return minValue;
}

应该为您工作。