当前位置: 首页 > 知识库问答 >
问题:

内置的功能,同时min和minindex在java?

叶展
2023-03-14

我已经看到了一些关于寻找最小索引的问题。在这个相关的问题上有一个解决方案,它使用2个内置函数,min,然后indexOf。这种方法的问题是它会对整个列表进行两次检查。是否有任何单个内置函数用于最小/最大索引?

共有2个答案

司寇灵均
2023-03-14

下面是该问题的一般解决方案以及一个简短的示例。

它只迭代列表一次,并返回最小项的索引和最小项本身。如果最小的项在列表中有一个或多个相等的项,那么它将返回第一个索引和项。

可以调整不可变的ListMin

public class ListMin<T> {

    final int index;
    final T item;

    public ListMin(int index, T item) {
        this.index = index;
        this.item = item;
    }

    public static <E extends Comparable<E>> ListMin<E> getListMin(List<E> list) {
        if (list.size() == 0) {
            // throw exception, do what you want.
        }
        ListIterator<E> it = list.listIterator();
        int minIndex = 0;
        E minItem = it.next(); // first is minimum
        while (it.hasNext()) {
            E item = it.next();
            if (item.compareTo(minItem) < 0) {
                minItem = item;
                minIndex = it.previousIndex();
            }
        }
        return new ListMin<E>(minIndex, minItem);
    }

    public static void main(String[] args) {
        List<String> list = Arrays.asList("B", "A", "C");
        ListMin<String> listMin = getListMin(list);
        System.out.println(listMin.index);
        System.out.println(listMin.item);
    }
}

孔永年
2023-03-14

到了Java7,还没有这样的方法;你必须自己实现它。请记住,对于列表,这个问题不一定只有一个正确答案,因为单个对象可以多次添加到列表,或者可以有多个相等的对象。

 类似资料:
  • 我实现了具有四个函数的bst,add,inorderPrint,min和max。最小值和最大值应该返回树中的最小/最大值,并删除该节点。树允许不平衡。下面是我的节点结构、add 函数、min 函数以及 valgrind 错误的实现。 Valgrind错误如下: 第43行是

  • 我想知道是否有可能同时调用和(在同一个调用/循环中)。 假设以下数据帧: 我想计算

  • 问题内容: 这段代码的结果为56。 知道里面发生了什么吗?我很困惑。 问题答案: X返回(值+3),而Y返回(值* 2) 给定值为4,这表示。 尽管函数不受范围限制(这意味着您可以安全地“嵌套”函数定义),但是此特定示例容易出错: 1)您不能在调用 之前先调用,因为函数只有执行一次才真正定义。 2)调用两次将导致PHP重新声明function ,从而导致致命错误: 致命错误:无法重新声明y() 两

  • 问题内容: numpy.amax()将在数组中找到最大值,numpy.amin()对最小值进行相同操作。如果要同时找到max和min,则必须调用两个函数,这需要两次(非常大)数组传递,这似乎很慢。 numpy API中是否存在仅通过一次数据查找即可找到max和min的函数? 问题答案: numpy API中是否存在仅通过一次数据查找即可找到max和min的函数? 否。在撰写本文时,尚无此功能。(是

  • AWK内置了许多功能,程序员始终可以使用它们。 本章通过合适的示例描述了算术,字符串,时间,位操作和其他各种功能。 S.No. 内置功能和说明 1 算术函数 AWK具有以下内置算术功能。 2 字符串函数 AWK具有以下内置String函数。 3 时间函数 AWK具有以下内置时间功能。 4 位操作函数 AWK具有以下内置位操作功能。 5 杂项功能 AWK具有以下杂项功能。

  • 本文向大家介绍jQuery内置的AJAX功能和JSON的使用实例,包括了jQuery内置的AJAX功能和JSON的使用实例的使用技巧和注意事项,需要的朋友参考一下 通过jQuery内置的AJAX功能,直接访问后台获得JSON格式的数据,然后通过jQuer把数据绑定到事先设计好的html模板上,直接在页面上显示。 我们先来看一下html模板: 一定要注意的就是里面所有的id属性,这个是一个关键。再来