From bc9c88665e7c7ec3b0e18a8c4ed7fe3972818c99 Mon Sep 17 00:00:00 2001 From: "Task-1.1" Date: Sun, 27 Dec 2020 10:07:54 +0500 Subject: [PATCH] =?UTF-8?q?=D0=91=D0=BE=D0=B6=D0=BA=D0=BE=D0=B2=20=D0=9A?= =?UTF-8?q?=D0=BE=D1=81=D1=82=D1=8F=20=D0=97=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=2010.3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/example/task03/Task03Main.java | 39 +++++++++++++++---- 1 file changed, 32 insertions(+), 7 deletions(-) diff --git a/10-java-functional-stream/task03/src/com/example/task03/Task03Main.java b/10-java-functional-stream/task03/src/com/example/task03/Task03Main.java index f07c4a98f..949d25215 100644 --- a/10-java-functional-stream/task03/src/com/example/task03/Task03Main.java +++ b/10-java-functional-stream/task03/src/com/example/task03/Task03Main.java @@ -1,27 +1,52 @@ package com.example.task03; import java.util.Comparator; +import java.util.Iterator; import java.util.function.BiConsumer; import java.util.stream.Stream; -public class Task03Main { - - public static void main(String[] args) { - +public class Task03Main +{ + public static void main(String[] args) + { findMinMax( Stream.of(2, 9, 5, 4, 8, 1, 3), Integer::compareTo, (min, max) -> System.out.println("min: " + min + " / max: " + max) ); - } - public static void findMinMax( Stream stream, Comparator order, - BiConsumer minMaxConsumer) { + BiConsumer minMaxConsumer) + { // your implementation here + Iterator iterator = stream.iterator(); + + if (!iterator.hasNext()) + { + minMaxConsumer.accept(null, null); + return; + } + + T e = (T)iterator.next(); + T min = e; + T max = e; + + while (iterator.hasNext()) + { + e = (T)iterator.next(); + + if(order.compare(e, min) < 0) + min = e; + + if(order.compare(e, max) > 0) + max = e; + } + + minMaxConsumer.accept(min, max); } } +