Использование пар в Java-программировании

JavaJavaBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

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

Создайте класс Java

Создайте новый класс Java с помощью следующей команды:

cd ~/project && touch PairsInJava.java

Реализуйте класс Pair пакета JavaFX.Util

JavaFX предоставляет встроенный класс Pair, который можно использовать для работы с парами. В этом шаге мы узнаем, как использовать класс Pair для создания и манипуляции парами. Добавьте следующий код в файл PairsInJava.java:

import javafx.util.Pair;

public class PairsInJava {
    public static void main(String[] args) {
        Pair<String, Integer> p1 = new Pair<>("apple", 1);
        Pair<String, Integer> p2 = new Pair<>("banana", 2);
        System.out.println("p1=" + p1.toString());
        System.out.println("p2=" + p2.toString());
        System.out.println("ключ p1=" + p1.getKey());
        System.out.println("значение p1=" + p1.getValue());
    }
}

В коде выше мы используем класс Pair для создания двух пар и затем выводим их ключ и значение для каждой пары.

Для компиляции и запуска кода выполните следующую команду:

javac PairsInJava.java && java PairsInJava

Реализуйте массивы объектов для создания пар в Java

В этом шаге мы узнаем, как реализовать массивы объектов для создания пар в Java. Добавьте следующий код в файл PairsInJava.java:

public class PairsInJava {
    public static void main(String[] args) {
        Object[] p1 = {"apple", 1};
        Object[] p2 = {"banana", 2};
        System.out.println("p1=" + p1[0] + "," + p1[1]);
        System.out.println("p2=" + p2[0] + "," + p2[1]);
    }
}

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

Для компиляции и запуска кода выполните следующую команду:

javac PairsInJava.java && java PairsInJava

Реализуйте пользовательский класс Pair

В этом шаге мы узнаем, как реализовать пользовательский класс пары для создания пар в Java. Добавьте следующий код в файл PairsInJava.java:

class MyPair<T1, T2> {
    private T1 key;
    private T2 value;

    public MyPair(T1 key, T2 value) {
        this.key = key;
        this.value = value;
    }

    public T1 getKey() {
        return key;
    }

    public T2 getValue() {
        return value;
    }

    public void setKey(T1 key) {
        this.key = key;
    }

    public void setValue(T2 value) {
        this.value = value;
    }
}

public class PairsInJava {
    public static void main(String[] args) {
        MyPair<String, Integer> p1 = new MyPair<>("apple", 1);
        MyPair<String, Integer> p2 = new MyPair<>("banana", 2);
        System.out.println("p1=" + p1.getKey() + "," + p1.getValue());
        System.out.println("p2=" + p2.getKey() + "," + p2.getValue());
    }
}

В коде выше мы определяем пользовательский класс MyPair для создания пар и затем выводим их ключ и значение для каждой пары.

Для компиляции и запуска кода выполните следующую команду:

javac PairsInJava.java && java PairsInJava

Реализуйте класс AbstractMap.SimpleEntry

В этом шаге мы узнаем, как создать пару с использованием класса AbstractMap.SimpleEntry. Добавьте следующий код в файл PairsInJava.java:

import java.util.AbstractMap;

public class PairsInJava {
    public static void main(String[] args) {
        AbstractMap.SimpleEntry<String, Integer> p1 = new AbstractMap.SimpleEntry<>("apple", 1);
        System.out.println("p1=" + p1.getKey() + "," + p1.getValue());
        p1.setValue(2);
        System.out.println("new p1=" + p1.getKey() + "," + p1.getValue());
    }
}

В коде выше мы используем класс AbstractMap.SimpleEntry для создания пары и затем изменяем ее значение.

Для компиляции и запуска кода выполните следующую команду:

javac PairsInJava.java && java PairsInJava

Реализуйте класс AbstractMap.SimpleImmutableEntry

В этом шаге мы узнаем, как создать неизменяемую пару с использованием класса AbstractMap.SimpleImmutableEntry. Добавьте следующий код в файл PairsInJava.java:

import java.util.AbstractMap;

public class PairsInJava {
    public static void main(String[] args) {
        AbstractMap.SimpleImmutableEntry<String, Integer> p1 = new AbstractMap.SimpleImmutableEntry<>("apple", 1);
        System.out.println("p1=" + p1.getKey() + "," + p1.getValue());
        // нельзя установить значение
        // p1.setValue(2);
    }
}

В коде выше мы используем класс AbstractMap.SimpleImmutableEntry для создания неизменяемой пары. Мы не можем изменить ее ключ и значение после их инициализации.

Для компиляции и запуска кода выполните следующую команду:

javac PairsInJava.java && java PairsInJava

Реализуйте класс Pair из библиотеки javatuples

В этом шаге мы узнаем, как использовать класс Pair из библиотеки javatuples для создания пар. Добавьте следующий код в файл PairsInJava.java:

import org.javatuples.Pair;

public class PairsInJava {
    public static void main(String[] args) {
        Pair<String, Integer> p1 = Pair.with("apple", 1);
        Pair<String, Integer> p2 = Pair.with("banana", 2);
        System.out.println("p1=" + p1.getValue0() + "," + p1.getValue1());
        System.out.println("p2=" + p2.getValue0() + "," + p2.getValue1());
    }
}

В коде выше мы используем класс Pair из библиотеки javatuples для создания и вывода ключа и значения для каждой пары.

Для компиляции и запуска кода выполните следующую команду:

javac -cp.:javatuples-1.2.jar PairsInJava.java && java -cp.:javatuples-1.2.jar PairsInJava

Реализуйте класс Tuple2 библиотеки Vavr

В этом шаге мы узнаем, как использовать класс Tuple2 из библиотеки Vavr для создания пар. Добавьте следующий код в файл PairsInJava.java:

import io.vavr.Tuple2;

public class PairsInJava {
    public static void main(String[] args) {
        Tuple2<String, Integer> p1 = new Tuple2<>("apple", 1);
        System.out.println("p1=" + p1._1() + "," + p1._2());
    }
}

В коде выше мы используем класс Tuple2 из библиотеки Vavr для создания и вывода ключа и значения пары.

Для компиляции и запуска кода выполните следующую команду:

javac -cp.:vavr-0.10.3.jar PairsInJava.java && java -cp.:vavr-0.10.3.jar PairsInJava

Реализуйте библиотеку Apache Commons

В этом шаге мы узнаем, как использовать классы MutablePair и ImmutablePair из библиотеки Apache Commons для создания и манипуляции с парами. Добавьте следующий код в файл PairsInJava.java:

import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.MutablePair;

public class PairsInJava {
    public static void main(String[] args) {
        MutablePair<String, Integer> p1 = new MutablePair<>("apple", 1);
        ImmutablePair<String, Integer> p2 = new ImmutablePair<>("banana", 2);

        System.out.println("p1=" + p1.getLeft() + "," + p1.getRight());
        System.out.println("p2=" + p2.getLeft() + "," + p2.getRight());

        p1.setLeft("orange");
        p1.setRight(3);

        System.out.println("new p1=" + p1.getLeft() + "," + p1.getRight());

        // нельзя устанавливать значения для неизменяемой пары
        // p2.setLeft("kiwi");

        p2 = p2.withLeft("kiwi");

        System.out.println("new p2=" + p2.getLeft() + "," + p2.getRight());
    }
}

В коде выше мы используем классы MutablePair и ImmutablePair из библиотеки Apache commons для создания пар и затем изменяем их ключ и значение.

Для компиляции и запуска кода выполните следующую команду:

javac -cp.:commons-lang3-3.13.0.jar PairsInJava.java && java -cp.:commons-lang3-3.13.0.jar PairsInJava

Резюме

Пары - это простой способ хранения двух данных, которые между собой имеют соответствие. В этом практическом занятии мы использовали разные классы и методы для реализации пар в Java. Некоторые популярные способы - это использование внешних библиотек, таких как Apache Commons или библиотека Vavr, использование встроенного класса Pair JavaFX, создание собственного класса пары и использование массивов объектов.