[Java] 2개의 값을 리턴할 때는? Pair class 사용하기

밤새·2023년 8월 23일
0

Java

목록 보기
1/2
post-thumbnail

1. Pair이란?

"Pair" 객체는 Java에서 두 가지 객체를 하나의 단위로 묶어서 관리하는 데 사용되는 간단한 클래스입니다. 일반적으로 두 객체 사이의 연관성을 표현하거나 함수가 둘 이상의 값을 반환해야 하는 경우에 유용하게 활용됩니다.

2. Pair 사용법

Java 표준 라이브러리에는 Pair 클래스가 기본으로 제공되지 않습니다. 대신, 여러 라이브러리에서 이러한 기능을 제공하는 클래스들을 사용할 수 있습니다. 대표적인 예로 Apache Commons 라이브러리에서 제공되는 Pair 클래스를 사용하여 두 값을 쌍으로 저장하고 조작할 수 있습니다.

아래는 Apache Commons 라이브러리의 Pair 클래스를 사용한 예제입니다!

  1. 먼저, Apache Commons 라이브러리를 프로젝트에 추가해야 합니다. Maven을 사용하는 경우 아래와 같이 의존성을 추가할 수 있습니다:
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.12.0</version> <!-- 최신 버전 확인 -->
</dependency>
  1. Pair 클래스를 사용하여 값을 저장하고 조작합니다
import org.apache.commons.lang3.tuple.Pair;

public class PairExample {
    public static void main(String[] args) {
        Pair<String, Integer> pair = Pair.of("John", 25);

        String name = pair.getLeft();
        Integer age = pair.getRight();

        System.out.println("Name: " + name);
        System.out.println("Age: " + age);
    }
}

위의 예제에서는 Pair.of() 메서드를 사용하여 Pair 객체를 생성하고, getLeft()getRight() 메서드를 사용하여 첫 번째와 두 번째 값을 가져올 수 있습니다.

물론, Pair 클래스를 직접 구현하여 사용할 수도 있습니다. 다음은 간단한 Pair 클래스의 예제입니다

public class MyPair<A, B> {
    private A first;
    private B second;

    public MyPair(A first, B second) {
        this.first = first;
        this.second = second;
    }

    public A getFirst() {
        return first;
    }

    public B getSecond() {
        return second;
    }

    public void setFirst(A first) {
        this.first = first;
    }

    public void setSecond(B second) {
        this.second = second;
    }
}

public class CustomPairExample {
    public static void main(String[] args) {
    	// MyPair 클래스 사용 예제
        MyPair<String, Integer> pair = new MyPair<>("Alice", 30);

        String name = pair.getFirst();
        Integer age = pair.getSecond();

        System.out.println("Name: " + name); // 이름 가져오기
        System.out.println("Age: " + age); // 나이 가져오기
    }
}

이 예제에서는 MyPair 클래스를 정의하고 생성자와 getter, setter 메서드를 추가하여 사용하였습니다.

3. Pair 메소드 정리

아래는 "Pair" 객체를 사용하기 위한 주요 메소드와 방법을 정리한 것입니다.

  1. Apache Commons 라이브러리의 Pair 클래스 (org.apache.commons.lang3.tuple.Pair)

    • Pair.of(A a, B b) : 두 개의 값을 가진 Pair 객체를 생성합니다.
    • getLeft() : 첫 번째 값을 반환합니다.
    • getRight() : 두 번째 값을 반환합니다.
    • getKey() : 첫 번째 값을 반환하는 getLeft()와 같은 역할을 합니다.
    • getValue() : 두 번째 값을 반환하는 getRight()와 같은 역할을 합니다.
    • equals(Object obj) : 두 Pair 객체가 동일한 값을 가지고 있는지 비교합니다.
    • hashCode() : Pair 객체의 해시 코드를 반환합니다.
    • toString() : Pair 객체를 문자열로 변환하여 반환합니다.
    Pair<String, Integer> pair = Pair.of("Alice", 25);
    String name = pair.getLeft();
    Integer age = pair.getRight();
  2. 직접 구현한 Pair 클래스

    • 직접 구현한 Pair 클래스는 두 값을 저장하고 접근하기 위한 getter 메소드를 포함합니다.
    class MyPair<A, B> {
        private A first;
        private B second;
    
        public MyPair(A first, B second) {
            this.first = first;
            this.second = second;
        }
    
        public A getFirst() {
            return first;
        }
    
        public B getSecond() {
            return second;
        }
    }
    
    MyPair<String, Integer> pair = new MyPair<>("Bob", 30);
    String name = pair.getFirst();
    Integer age = pair.getSecond();

"Pair" 객체를 사용하면 두 개의 값을 하나로 묶어 편리하게 다룰 수 있습니다. 그러나 Java 표준 라이브러리에서는 직접 제공되지 않기 때문에 외부 라이브러리를 사용하거나 직접 구현하여 활용해야 합니다.

Reference : Pair (JavaFx8)

profile
프로젝트를 통해 배운 개념이나 겪은 문제점들을 정리하고, 회고록을 작성하며 성장해나가는 곳입니다 😊

0개의 댓글

관련 채용 정보