diff --git a/boot-service/src/main/java/com/xwbing/demo/LambdaDemo.java b/boot-service/src/main/java/com/xwbing/demo/LambdaDemo.java index bcf687a..4739f80 100644 --- a/boot-service/src/main/java/com/xwbing/demo/LambdaDemo.java +++ b/boot-service/src/main/java/com/xwbing/demo/LambdaDemo.java @@ -98,7 +98,7 @@ public class LambdaDemo { CompletableFuture[] futures = new CompletableFuture[size]; List finalList = new ArrayList<>(size); for (int i = 0; i < size; i++) { - finalList.add(null);//必须有这步,否则会下标越界 + finalList.add(null);//在异步之前size+1,必须有这步,否则会下标越界 Integer integer = list.get(i); final int pos = i; futures[i] = CompletableFuture.supplyAsync(() -> finalList.set(pos, integer), taskExecutor);//按原来顺序存 diff --git a/boot-service/src/main/java/com/xwbing/demo/demo.java b/boot-service/src/main/java/com/xwbing/demo/demo.java index 66136af..36ea27c 100644 --- a/boot-service/src/main/java/com/xwbing/demo/demo.java +++ b/boot-service/src/main/java/com/xwbing/demo/demo.java @@ -21,6 +21,7 @@ public class demo { CompletableFuture[] futures = new CompletableFuture[size]; List finalList = new ArrayList<>(); for (int i = 0; i < size; i++) { + finalList.add(null); Integer integer = list.get(i); int finalI = i; futures[i] = CompletableFuture.supplyAsync(() -> finalList.set(finalI, integer));