【问题标题】:Finding max element in Arraylist of integer arrays在整数数组的 Arraylist 中查找最大元素
【发布时间】:2014-10-13 09:24:23
【问题描述】:

我正在尝试创建一个允许您传入 ArrayList 并返回最大元素的函数。由于传入的数据类型不是原始的,我一直无法找出正确的解决方案。我也尝试将 ArrayList 转换为 ArrayList 但没有成功。到目前为止,这是我的(不正确的)代码:

public static void maxArrayListValue(ArrayList<int[]> arrayList) {
    int maxArrayListValue = arrayList.get(0);   // set first arrayList element as highest

    for (int index=1; index < arrayList.size(); index++) {  // cycle through each arrayList element
        if (maxArrayListValue < arrayList.get(index)){      // if new element is > than old element
        maxArrayListValue = arrayList.get(index);           // replace with new maxValue
        maxArrayListIndex = index;                          // record index of max element
        }
    }
    return maxArrayListValue;
}

我们将不胜感激。

【问题讨论】:

    标签: java arrays arraylist


    【解决方案1】:

    您的方法没有返回任何内容,我认为您想迭代每个数组中的值。类似的,

    public static int maxArrayListValue(List<int[]> arrayList) {
        int maxVal = Integer.MIN_VALUE;
        for (int[] arr : arrayList) {
            for (int v : arr) {
                if (v > maxVal) {
                    maxVal = v;
                }
            }
        }
        return maxVal;
    }
    

    【讨论】:

    • 这非常有效。我只是想确保我正确理解了这一点;第一个循环遍历 arraylist 中的每个数组,第二个循环遍历每个数组中的每个元素?
    • 你有一个List&lt;int[]&gt;,所以我们首先迭代你的List&lt;&gt;int[] 内容然后你就有了!
    【解决方案2】:

    您不需要循环。只需使用java.util.Collections.max(arrayList);

    【讨论】:

    • 我不确定这是否可行,我以为您只能对原始数据类型使用集合?我收到错误消息:“集合类型中的方法 max( extends T>) 不适用于参数 (ArrayList)”。
    • 如果您的集合元素没有自然排序,则必须提供Comparator 作为第二个元素。
    猜你喜欢
    • 2013-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多