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