Есть моменты, когда в процессе разработки программного обеспечения на Java возникает потребность хранить пару значений. В C++, для этих целей обычно используется Pair<L,R>. Но у Java нет встроенного аналога этого класса, что может вызвать некоторое замешательство.
Пример ситуации
Представим ситуацию, в которой требуется хранить пару значений — имя и возраст человека. В C++, это можно легко сделать с помощью Pair<string, int>, но в Java такой опции нет.
Решение
В Java есть несколько вариантов реализации хранения пары значений. Один из них — это использование класса AbstractMap.SimpleEntry<K,V>
. Этот класс представляет пару ключ/значение и может использоваться для этой цели.
AbstractMap.SimpleEntry<String, Integer> pair = new AbstractMap.SimpleEntry<>("John", 25);
Здесь «John» — это ключ, а 25 — значение. Ключ и значение могут быть любых типов.
Однако, этот подход может показаться сложным и избыточным, поскольку класс AbstractMap.SimpleEntry<K,V>
предназначен в основном для работы с картами, а не для хранения просто пары значений.
Альтернативное решение
Более простым и понятным решением может быть создание собственного класса Pair. Это не так сложно, как может показаться на первый взгляд.
public class Pair<L, R> { private final L left; private final R right; public Pair(L left, R right) { this.left = left; this.right = right; } public L getLeft() { return left; } public R getRight() { return right; } }
Этот класс Pair может хранить любые два значения (слева и справа). Использование этого класса также достаточно просто:
Pair<String, Integer> pair = new Pair<>("John", 25);
Таким образом, хотя в Java нет встроенного аналога C++ Pair<L,R>, есть несколько способов реализации хранения пары значений, среди которых можно выбрать наиболее подходящий.
Добавить комментарий