Java 如何创建一个方法,在其中检查数组中的某些值而不是整个数组?

Java 如何创建一个方法,在其中检查数组中的某些值而不是整个数组?,java,Java,我创建了一个方法,用于检查整个数组并检索按字母顺序排列的最新字符串。我现在要做的是更改该方法,以便用户在数组中输入2个位置,并让该方法返回2个位置之间最新的值。 例如 如果我有一个数组字符串,上面写着,{“Bob”、“Michael”、“Joe”、“Gazza”、“Paul”、“Barry”},我调用方法getMaxValue(数组,0,1)。它应该输出名称“Michael” 下面是getMaxsValue方法: public static String getMaxsValue(String[

我创建了一个方法,用于检查整个数组并检索按字母顺序排列的最新字符串。我现在要做的是更改该方法,以便用户在数组中输入2个位置,并让该方法返回2个位置之间最新的值。 例如 如果我有一个数组字符串,上面写着,
{“Bob”、“Michael”、“Joe”、“Gazza”、“Paul”、“Barry”}
,我调用方法
getMaxValue(数组,0,1)
。它应该输出名称
“Michael”

下面是getMaxsValue方法:

public static String getMaxsValue(String[] array, int pos1, int pos2) {
    String longstr = array[0];
    for (String s : array) {
        if (s.compareTo(longstr) > 0) {
            longstr = s;
        }
    }
    return longstr;
}

您应该只在给定的索引之间循环,而不是为每个循环指定一个循环

public static String getMaxsValue(String[] array, int pos1, int pos2) {
    String longstr = array[pos1];
    for (int i = pos1; i <= pos2; i++) {
        if (array[i].compareTo(longstr) > 0) {
            longstr = array[i];
        }
    }
    return longstr;
}

对于溪流爱好者来说,这里是另一个选择

public static String getMaxsValue(String[] array, int pos1, int pos2) {
    return Arrays.stream(array,pos1,pos2 +1).max(String::compareTo).orElse(null);
}

@GameDroids对索引注释的检查也适用于此。

别忘了检查索引
pos1
pos2
是否仍在数组中(以防万一)@ali我为这种情况添加了另一个版本。
public static String getMaxsValue(String[] array, int pos1, int pos2) {
    if (array[pos1].compareTo(array[pos2]) > 0) {
            return array[pos1];
    }
    return array[pos2];
}
public static String getMaxsValue(String[] array, int pos1, int pos2) {
    return Arrays.stream(array,pos1,pos2 +1).max(String::compareTo).orElse(null);
}