如何在Java ArrayList中返回第一个最大值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Java ArrayList中返回第一个最大值相关的知识,希望对你有一定的参考价值。

我正在尝试返回ArrayList<Integer>最大值的第一个索引。下面的代码找到第二个最大值而不是第一个。如何返回循环遇到的第一个最大值?

public int findIndexOfMax() {
    int maxIndex = 0;
    for (int k = 0; k < myFreqs.size(); k++) {
        if (myFreqs.get(k) > maxIndex) {
            maxIndex = myFreqs.get(k);
        }
    }
    return maxIndex;
}

返回的是'测试。 3' 。但它应该是字母'a'的第一个最大值3。

Number of unique words: 7
1   this
1   is
3   a
3   test.
1   yes
1   test
1   of
The word that occurs most often and its count are: test. 3
答案

您似乎忘记了在比较中访问maxIndex中的元素。然后将索引设置为if中元素的值(而不是index)。我想你想要的,

public int findIndexOfMax() {
    int maxIndex = 0;
    for (int k = 1; k < myFreqs.size(); k++) {
        if (myFreqs.get(k) > myFreqs.get(maxIndex)) {
            maxIndex = k;
        }
    }
    return maxIndex;
}
另一答案

我认为您使用左侧的整数作为右侧字符串的索引,当您第二次使用3作为索引时,它将值“a”与“test”重叠。

以上是关于如何在Java ArrayList中返回第一个最大值的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Java 中正确返回 ArrayList 的一部分?

java中的求最值问题,求指点~~~~~~~~~

java 如何将一个list中的值全部复制到另一个list中?

在Java中,ArrayList与数组如何相互转换,写出例子

当作为参数传递给返回 void 并在函数中修改的函数时,如何修改 Java ArrayList?可能对按值传递感到困惑

如何用Java找出一个整数数组中最大的值,并返回最大值的数组下标,尤其是有两个或是三个最大值时?