From d0d73569272ce1a7765c86242975b6986164f544 Mon Sep 17 00:00:00 2001 From: lollowerYT <77741489+lollowerYT@users.noreply.github.com> Date: Wed, 5 Nov 2025 18:32:08 +0500 Subject: [PATCH] Implement Pair class with utility methods --- task01/src/com/example/task01/Pair.java | 52 ++++++++++++++++++++++++- 1 file changed, 50 insertions(+), 2 deletions(-) diff --git a/task01/src/com/example/task01/Pair.java b/task01/src/com/example/task01/Pair.java index f6fb603b..fe49cd7b 100644 --- a/task01/src/com/example/task01/Pair.java +++ b/task01/src/com/example/task01/Pair.java @@ -1,5 +1,53 @@ package com.example.task01; -public class Pair { - // TODO напишите реализацию +import java.util.Objects; +import java.util.function.BiConsumer; + +public final class Pair { + private final T first; + private final U second; + + // приватный конструктор + private Pair(T first, U second) { + this.first = first; + this.second = second; + } + + // статический фабричный метод + public static Pair of(T first, U second) { + return new Pair<>(first, second); + } + + public T getFirst() { + return first; + } + + public U getSecond() { + return second; + } + + // аналог Optional.ifPresent, но для двух элементов + public void ifPresent(BiConsumer consumer) { + if (consumer != null) { + consumer.accept(first, second); + } + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof Pair pair)) return false; + return Objects.equals(first, pair.first) && + Objects.equals(second, pair.second); + } + + @Override + public int hashCode() { + return Objects.hash(first, second); + } + + @Override + public String toString() { + return "Pair[" + first + ", " + second + "]"; + } }