From f0765d9f123978a01f51bbf05cb6c50d574f3ef8 Mon Sep 17 00:00:00 2001 From: "Task-1.1" Date: Sun, 27 Dec 2020 09:45:49 +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=209.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../task01/src/com/example/task01/Pair.java | 62 ++++++++++++++++++- 1 file changed, 61 insertions(+), 1 deletion(-) diff --git a/09-java-generics-collections/task01/src/com/example/task01/Pair.java b/09-java-generics-collections/task01/src/com/example/task01/Pair.java index 6b36a5df4..e16f5dde9 100644 --- a/09-java-generics-collections/task01/src/com/example/task01/Pair.java +++ b/09-java-generics-collections/task01/src/com/example/task01/Pair.java @@ -2,4 +2,64 @@ public class Pair { // TODO напишите реализацию -} +import java.util.function.BiConsumer; + + public class Pair + { + private final T first; + private final U second; + + private Pair(T first, U second) + { + this.first = first; + this.second = second; + } + + public U getSecond() + { + //тест падает на null + //throw new NoSuchElementException("No second value present"); + return second; + } + + public T getFirst() + { + //тест падает на null + //throw new NoSuchElementException("No first value present"); + return first; + } + + public void ifPresent(BiConsumer consumer) + { + if (first != null && second != null) { + consumer.accept(first, second); + } + } + + @Override + public boolean equals(Object obj) + { + if (obj == this) + { + return true; + } + if (obj == null || obj.getClass() != this.getClass()) + { + return false; + } + Pair tmp = (Pair) obj; + return (first == tmp.getFirst() || (first != null && tmp.getSecond().equals(tmp.getFirst()))) + && (second == tmp.getSecond() || (second != null && second.equals(tmp.getSecond()))); + } + + @Override + public int hashCode() + { + return (first == null ? 0 : first.hashCode()) ^ (second == null ? 0 : second.hashCode()); + } + + public static Pair of(T first, U second) + { + return new Pair<>(first, second); + } + } \ No newline at end of file