循环遍历法
public static int findMaxIndex(int[] array) {int maxIndex = 0;for (int i = 1; i < array.length; i++) {if (array[i] > array[maxIndex]) {maxIndex = i;}}return maxIndex;}
使用Java 8的流API
import java.util.Arrays;import java.util.OptionalInt;public static int findMaxIndexUsingStreams(int[] array) {OptionalInt maxIndex = Arrays.stream(array).boxed().max(Integer::compare);return maxIndex.isPresent() ? maxIndex.getAsInt() : -1;}
使用Java 8的`Collectors.maxBy`
import java.util.Arrays;import java.util.Comparator;import java.util.Optional;public static int findMaxIndexUsingCollectorsMaxBy(int[] array) {OptionalmaxIndex = Arrays.stream(array) .boxed().collect(Collectors.maxBy(Comparator.naturalOrder()));return maxIndex.isPresent() ? maxIndex.get() : -1;}
使用Java 8的`Arrays.stream`和`collectors.toMap`
import java.util.Arrays;import java.util.Map;import java.util.Optional;import java.util.function.Function;import java.util.stream.Collectors;public static int findMaxIndexUsingCollectorsToMap(int[] array) {Optional> maxEntry = Arrays.stream(array) .boxed().collect(Collectors.toMap(Function.identity(), Function.identity(), (e1, e2) -> e1, LinkedHashMap::new)).entrySet().stream().max(Map.Entry.comparingByValue());return maxEntry.isPresent() ? maxEntry.get().getValue() : -1;}
以上方法都可以用来找到数组中最大值的索引。选择哪种方法取决于你的具体需求和偏好。如果你使用的是Java 8或更高版本,使用流API会更加简洁和现代化。如果你使用的是较旧的Java版本,那么循环遍历法可能是更直接的选择。

