StackAsk is a community where developers ask questions, share answers and learn from each others real-world experience, so every solved problem helps the next person who runs into it.
Task 1: Nhân các số với 2 : Mỗi lần thực hiện mất 10ms Task 2: Chia các số với 3 : Mỗi lần thực hiện mất 20ms Task 3: Nhân các số với 5 : Mỗi lần thực hiện mất 10ms Task 4: Cộng các số thêm 5 : Mỗi lần thực hiện mất 20ms
public class Main { public static void main(String[] args) { // Task 1: Nhân các số với 2 : Mỗi lần thực hiện mất 10ms // Task 2: Chia các số với 3 : Mỗi lần thực hiện mất 20ms // Task 3: Nhân các số với 5 : Mỗi lần thực hiện mất 10ms // Task 4: Cộng các số thêm 5 : Mỗi lần thực hiện mất 20ms final List<Integer> listOrigin = new ArrayList(); for (int i = 0; i < 200; ++i) { listOrigin.add(i); } forLoop(listOrigin); stream(listOrigin); } private static void stream(List<Integer> listOrigin) { final long streamStartTime = System.currentTimeMillis(); listOrigin.stream().parallel().map(data -> { try { Thread.sleep(10); } catch (InterruptedException e) { e.printStackTrace(); } return new TempDto(data, data * 2); }).map(data -> { try { Thread.sleep(20); } catch (InterruptedException e) { e.printStackTrace(); } return new TempDto(data.origin, data.result / 3); }).map(data -> { try { Thread.sleep(10); } catch (InterruptedException e) { e.printStackTrace(); } return new TempDto(data.origin, data.result * 5); }).map(data -> { try { Thread.sleep(20); } catch (InterruptedException e) { e.printStackTrace(); } return new TempDto(data.origin, data.result + 5); }).collect(Collectors.toList()); final long streamElapsed = System.currentTimeMillis() - streamStartTime; System.out.println("stream elapsed: " + streamElapsed); } public static class TempDto { Integer origin; Integer result; public TempDto(Integer origin, Integer result) { this.origin = origin; this.result = result; } } private static void forLoop(List<Integer> listOrigin) { try { final Map<Integer, Integer> forLoopCopy = new HashMap<>(); final long forLoopStartTime = System.currentTimeMillis(); for (Integer item : listOrigin) { Thread.sleep(10); int resultTask1 = item * 2; Thread.sleep(20); int resultTask2 = resultTask1 / 3; Thread.sleep(10); int resultTask3 = resultTask2 * 5; Thread.sleep(20); int resultTask4 = resultTask3 + 5; forLoopCopy.put(item, resultTask4); } final long forLoopElapsed = System.currentTimeMillis() - forLoopStartTime; System.out.println("for loop elapsed: " + forLoopElapsed); } catch (Exception exception) { exception.printStackTrace(); } } }
for loop elapsed: 18725 stream elapsed: 2521
2.2K Point(s)
1.2K Point(s)
313 Point(s)
178 Point(s)
138 Point(s)
Your account is signed in on the device(s) below. Sign out of at least one of them to continue signing in on this device.
Your account is signed in on the device(s) below. Sign out directly on one of those devices, or wait until the sign-in again time shown below.
If you cant access those devices, please contact the administrator to sign them out for you.
Input your email to receive reset password link, or if you remember your password, you can click