java - 数组对象和最大值

标签 java

我知道如何找到数组中的最小值和最大值。如果一个方法被称为 fMax():

public static double fMax(Object[] stuff)

参数是一个数组对象,我如何找到该数组的最大值?我不能就这么做。好的,如果我希望该方法返回一个 double 值,并且尚未为名为 stuff 的参数分配内存,那么它将返回 Double 中的值 NEGATIVE_INFINITY ,我该怎么做? code> 类,否则返回值将是 stuff 数组中元素的最大值

Object max = stuff[0];
for (int i = 0; i < stuff.length; i++) {
    if (data[i] > max) {
        max = stuff[i];
    }
}

最佳答案

要找到某物的最大值,要么 a) 某些东西需要实现 Comparable 接口(interface) b)您需要有某种明确的标准来确定最大值,因此您可以将其放入 Comparator 的实例中

对象本身不会有任何对排序有用的东西。如果您对对象进行子类化,则可以根据该对象的组件进行排序。

public class Example implements Comparable
{
    int sortableValue = 0;

    public Example (int value)
    {
        this.sortableValue = value;
    }

    public int compareTo(Example other)
    {
        return Integer.compare(this.sortableValue, other.sortableValue);
    }
}

这是一个具有自然排序顺序的对象定义。 Java 可以使用任何内置的排序算法来查看它们并知道它们所属的顺序。

如果你没有为 java 提供一种方法来确定一个对象与相同类型的另一个对象相比如何具有更大或更少的相对值,它就不会自行计算出来。

关于java - 数组对象和最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34915937/

相关文章:

java - JDBC4 Hive 驱动程序错误 : Only AEQuery is supported

java - Unity 2d 游戏中的操纵杆设置

java - TableColumnExt 不尊重原型(prototype)值

Java arraylist转数组、数组转字符串错误

java - 将 Intent 从一个应用程序广播到另一个应用程序

java - 调试时不关闭数据库连接有问题吗?

java - Hibernate 相当于这个 MySQL 查询的是什么?

java - 比较和排序字符串 Java

java - 如何让我的 Java CLI 解析库 Jopt Simple 解析一个没有任何选项的参数?

java - 运行 bin/hadoop namenode -format 时出现 fatal error