Triplet 클래스는 정확히 세 개의 요소를 담는 튜플(Tuple)입니다. JavaTuples 라이브러리에 포함되어 있으며, 서로 다른 타입의 값들을 하나의 객체로 묶어 관리할 수 있게 해주는 불변(immutable) 자료구조입니다.
JavaTuples에서 Triplet 클래스를 사용하려면 먼저 아래 패키지를 임포트해야 합니다.
import org.javatuples.Triplet;
Triplet 객체 생성하기
다음은 Triplet 클래스를 사용해 세 개의 문자열 값을 담는 간단한 예제입니다.
import org.javatuples.Triplet;
public class Demo {
public static void main(String[] args) {
Triplet<String, String, String> t =
new Triplet<String, String, String>("One", "Two", "Three");
System.out.println(t);
}
}실행 결과:
[One, Two, Three]
값 조회하기 – getValue()
저장된 값은 getValue0(), getValue1(), getValue2() 메서드를 통해 인덱스별로 조회할 수 있습니다.
import org.javatuples.Triplet;
public class Demo {
public static void main(String[] args) {
Triplet<String, String, String> t =
new Triplet<String, String, String>("One", "Two", "Three");
System.out.println(t);
System.out.println("조회한 값: " + t.getValue0());
}
}실행 결과:
[One, Two, Three] 조회한 값: One
값 변경하기 – setAt1()
Triplet은 불변 객체이므로 기존 튜플을 직접 수정하지 않습니다. 대신 setAt1()과 같은 메서드를 호출하면 지정한 인덱스의 값만 교체된 새로운 Triplet 복사본이 반환됩니다.
import org.javatuples.Triplet;
public class Demo {
public static void main(String[] args) {
Triplet<String, String, String> t1 =
Triplet.with("Movies", "Web Series", "TV Shows");
System.out.println(t1);
Triplet<String, String, String> t2 = t1.setAt1("Songs");
System.out.println(t2);
}
}실행 결과:
[Movies, Web Series, TV Shows] [Movies, Songs, TV Shows]
추가로 알아두면 좋은 기능
Triplet 클래스에는 위 예제 외에도 contains()(특정 값 포함 여부 확인), indexOf()(값의 위치 검색), equals(), hashCode() 등의 편리한 메서드가 제공됩니다. 또한 add() 계열 메서드를 사용하면 요소를 추가해 Quartet으로 확장하거나, 일부 값을 제거하여 Pair 등 다른 크기의 튜플로 변환할 수도 있습니다.