Рубрики
Без рубрики

Что такое парный класс в Java?

Класс Java Pair хранит два значения в виде кортежа. Это может быть полезно для получения функции, возвращающей два значения. Java имеет встроенный класс Pair из

Автор оригинала: Pankaj Kumar.

Класс Java Pair хранит два значения в виде кортежа. Это может быть полезно для получения функции, возвращающей два значения.

Java имеет встроенный класс Pair начиная с Java 8 и далее. Вот почему в этом уроке мы не только рассмотрим встроенный класс pair, но и узнаем, как создать наш собственный класс pair.

Класс Pair очень полезен при использовании древовидной структуры данных. При использовании рекурсии в дереве класс pair позволяет легко передавать значения из одного узла в другой. Эти значения могут быть минимальным и максимальным значением узла до этого узла. Это предотвратило бы повторное посещение определенных узлов снова и снова.

Встроенный класс пар в Java

Встроенный класс Pair является частью пакета JavaFX. Однако этот пакет не является частью стандартной установки OpenJDK. Мы можем добавить его в наш проект, используя следующие зависимости maven.


	org.openjfx
	javafx-base
	14.0.1

Давайте сразу перейдем к использованию встроенных парных классов в Java.

Импорт класса пар

Для импорта используйте:

import javafx.util.Pair;

Встроенный класс pair использует обозначения ключа и значения для хранения пары.


Однако не путайте его с хэш-картой .

Объявление объекта пары

 Pair p = new Pair<>(7,"Hello");

Это создает объект пары типа <Целое число, строка> .

Конструктор принимает значения 7 и “привет” и сохраняет их в классе Pair.

Доступ к значениям

Мы можем получить доступ к значениям из объекта пары с помощью методов getKey() и GetValue ().

  • getKey получает первое значение.
  • GetValue получает второе значение.
System.out.println("the first value is :" + p.getKey());
System.out.println("the first second is :" + p.getValue());

Полный код для этого раздела::

import javafx.util.Pair;

public class Main {

public static void main(String[] args)
{
Pair p = new Pair<>(7,"Hello");
System.out.println("the first value is :" + p.getKey());
System.out.println("the first second is :" + p.getValue());
}
}

Создание собственного класса пар

Создание нашего собственного класса пар-лучшая альтернатива, так как мы можем настроить его в соответствии с нашими собственными предпочтениями. Кроме того, если вы не используете JavaFX в своем проекте, имеет смысл полностью избегать его.

1. Определение пользовательского класса пар

Для простоты мы используем класс pair, в котором хранятся два значения. Целое число и строка. Использование дженериков тоже было бы хорошей идеей.

public class Pair {
        int first;
        String second;
        public Pair(int first, String second) {
            this.first = first;
            this.second = second;
        }
}

Две переменные первая и вторая были определены для хранения двух значений типа int и String соответственно.

Конструктор принимает два значения и присваивает их переменным.

2. Парный класс в действии

Чтобы использовать только что созданный класс pair, определите объект класса pair и вызовите конструктор.

Pair a = new Pair(1, "one");

Это создает объект пары с 1, хранящимся в первом, и “единицей”, хранящейся во втором.

Для доступа к значениям:

System.out.println("the first value is :" + a.first);
System.out.println("the first second is :" + a.second);

Поскольку класс pair определен нами, мы можем настроить и добавить в него функцию печати.

Код для класса пар:

 public class Pair {
        int first;
        String second;
        public Pair(int first, String second) {
            this.first = first;
            this.second = second;
        }
        public void print(){
            System.out.println("< "+first+", "+second+ " >");
        }
        
        public static void main(String[] args){
            Pair a = new Pair(1,"Hello");
            a.print();
        }
}

Включая функцию печати, этот способ является хорошей привычкой к кодированию, так как теперь переменные можно сделать закрытыми. Сохранение открытых переменных небезопасно.

Использование класса сопряжения с функцией

Класс Pair может использоваться для возврата двух значений из функции. Для этого тип возвращаемой функции должен быть pair.

 public static Pair func (Scanner s){
    System.out.println("what is your name");
    String name = s.next();
    System.out.println("what is your favourite number?");
    int num = s.nextInt();
    Pair ans = new Pair(num, name);
    return ans;
}

Объект, возвращаемый этой функцией, может быть захвачен в основной функции. Давайте напечатаем объект в главном.

public static void main(String[] args) {
Scanner s = New Scanner(System.in)
Pair ans = func(s);
ans.print();
}

Полный код для этого раздела выглядит следующим образом.

import java.util.Scanner;

public class Main {       
public static void main(String[] args) {
Scanner s = New Scanner(System.in)
Pair ans = func(s);
ans.print();
}

public static Pair func (Scanner s){
System.out.println("what is your name");
String name = s.next();
System.out.println("what is your favourite number?");
int num = s.nextInt();
Pair ans = new Pair(num, name);
return ans;
}
}

Вывод

Парные классы важны и могут повысить эффективность кода при правильном использовании. Одной из интересных областей использования класса pair является хранение максимальных и минимальных значений поддерева в задачах BST. Это экономит несколько обходов вниз по дереву.