Найти и вернуть сумму всех чисел, которые находятся в массиве после значения startValue

Дан массив чисел values и значение startValue. В этом задании нужно найти и вернуть сумму всех чисел, которые находятся в массиве после значения startValue.

public class SumAfterNumber {
  public static int getSum(int[] values, int startValue) {
  
    int result = 0;
    int startIndex = 0;
    for(int elem : values) {
      if(elem != startValue) {
        result = 0;
      } else if(values.length == 0 && startValue == elem) {
        result = 0;
      } //else if(startValue == elem && values.length != 0) {
       // result += elem;
     // }
    }
    for(int i = 0; i < values.length; i++) {
      if(startValue == values[i] && values.length != 0) {
        startIndex = values[i+1];
      }
    }
    
    
    return result;
    
  }
}

Ответы (1 шт):

Автор решения: Nowhere Man
  • Ищете индекс числа, равного заданному -- при этом пропускаются все числа (можно использовать цикл while).
  • Начиная от следующего индекса, считаете сумму.

Реализация с использованием Stream API выглядит так:

public static int getSum(int startValue, int ... values) {
    return IntStream.of(values)
        .dropWhile(x -> x != startValue) // пропустить все числа с начала массива по условию
        .skip(1) // взять следующий элемент после равного заданному
        .sum();  // вычислить сумму оставшихся элементов
}
→ Ссылка