4 回答

TA貢獻1995條經驗 獲得超2個贊
您可以使用和比較長度:Arrays.stream
String names[]={"John","Malisa","Stack Overflow"};
Optional<String> max = Arrays.stream(names)
.max(Comparator.comparingInt(String::length));
System.out.println(max.orElse("none"));
斷續器我沒有正確理解你的問題。您可以使用此代碼獲取最大元素的索引:
String names[]={"John","Malisa","Stack Overflow"};
int index = IntStream.range(0, names.length)
.reduce((i, j) -> names[i].length() > names[j].length() ? i : j)
.getAsInt();
System.out.println(index);

TA貢獻1827條經驗 獲得超8個贊
只需使用 :-
Arrays.stream(names) .sorted(Comparator.comparing(String::length,Comparator.reverseOrder())) .findFirst() .get()

TA貢獻2016條經驗 獲得超9個贊
以下是同時獲取最長字符串及其索引的另一種方法:
String[] names = {"John", "Malisa", "Stack Overflow"};
Optional<Map.Entry<String, Integer>> result = IntStream.range(0, names.length).boxed()
.collect(Collectors.toMap(i -> names[i], Function.identity()))
.entrySet().stream()
.max(Comparator.comparing(e -> e.getKey().length()));
result.ifPresent(e -> System.out.println("Longest String: '" + e.getKey() + "' at index " + e.getValue()));
這將創建一個包含字符串及其索引的映射。之后,它將返回具有最長字符串的條目。
數組的結果是:names
Longest String: 'Stack Overflow' at index 2
添加回答
舉報