JavaScript

Программа по вычислению индекса элемента массива в джава

Здравствуйте! Помогите пожалуйста написать программу.

Дан массив K= (-12,6,71,14,-31,6,0,21,4,72,16,0,72,4,-3). Разработать программу вычисления индекса второго элемента массива, равного нулю, а также суммы отрицательных элементов, ему предшествующих
Если ты точно имеешь ввиду Java, а не Javascript, то вот код (для удобства я использовал Futures что является асинхронным кодом, потому компиляция должна быть на версии Java выше 16. Если потребуется - перепишу на Java 8):

 import java.util.Arrays; 
import java.util.concurrent.CompletableFuture;

public class ArrayTask {
public static void main(String[] args) {
int[] k = {-12, 6, 71, 14, -31, 6, 0, 21, 4, 72, 16, 0, 72, 4, -3};

CompletableFuture indexFuture = CompletableFuture.supplyAsync(() -> {
for (int i = 0; i < k.length; i++) {
if (k[i] == 0) {
return i;
}
}
return -1;
});

CompletableFuture sumFuture = indexFuture.thenApplyAsync(index -> {
if (index < 0) {
return 0;
}

int sum = 0;
for (int i = 0; i < index; i++) {
if (k[i] < 0) {
sum += k[i];
}
}
return sum;
});

CompletableFuture.allOf(indexFuture, sumFuture).join();
// если нужно, замени log на System.out.println
log("Массив: " + Arrays.toString(k));
log("Индекс 2-го нулевого элемента: " + indexFuture.join());
log("Сумма отрицательных элементов до 2-го нулевого элемента: " + sumFuture.join());
}
public static void log(String message) {
System.out.println(message);
}
}
Денис Ниценко
Денис Ниценко
7 794
Лучший ответ
Дмитрий Шахматов ОГРОМНОЕ СПАСИБО!!!! Все работает :)
 import java.util.ArrayList; 

public class Main {
public static void main(String[] args) {
ArrayList K = new ArrayList();
K.add(-12);
K.add(6);
K.add(71);
K.add(14);
K.add(-31);
K.add(6);
K.add(0);
K.add(21);
K.add(4);
K.add(72);
K.add(16);
K.add(0);
K.add(72);
K.add(4);
K.add(-3);
System.out.println(second(K));
}

public static ArrayList second(ArrayList arr) {
boolean zeroMet = false;
for (int i = 0; i < arr.size(); i++) {
if (arr.get(i) == 0) {
if (zeroMet) {
int zeroIdx = i;
int sumOfNegative = arr.subList(0, i).stream().filter(e -> e < 0).reduce(0, Integer::sum);
ArrayList result = new ArrayList();
result.add(zeroIdx);
result.add(sumOfNegative);
return result;
} else {
zeroMet = true;
}
}
}
return null;
}
}
Дмитрий Шахматов Спасибо огромное за отклик!

Разрешите еще раз обратиться к вам. Джава тринкет выдает 20 ошибок. Можно посмотреть скриншот, как у вас эта программа выполняется?
Кайрат Умбетов Добрый день, вопрос был размещен в категории в JavaScript, я не глядя вопрос решил ее именно на JavaScript. Этот Java код был собран конвертером из JavaScript.
Кайрат Умбетов Такой, кажется, работает