자바로 bfs 문제를 풀 때, x좌표 y좌표 두 개의 값을 한 번에 하나의 Queue에 삽입해야 하는 경우가 있었다.
Pair 클래스를 직접 생성해서 문제를 풀었는데, 같은 기능을 하는 자바의 Point 클래스 가 있다.
1. Pair 클래스를 직접 생성
C++에 있는 pair 클래스를 직접 생성해서 사용할 수 있다.
import java.util.*;
public class Test {
public static class Pair {
int x;
int y;
public Pair(int x, int y) {
this.x = x;
this.y = y;
}
}
public static void main(String[] args) {
Queue<Pair> q = new LinkedList<>();
//queue에 삽입
q.offer(new Pair(1, 3));
//queue에서 꺼내기
Pair pair = q.poll();
int first = pair.x;
int second = pair.y;
System.out.println(first + " " + second); //1 3
}
}
2. Point 클래스 사용
java.awt.Point를 import 해서 Point 클래스를 사용할 수 있다.
import java.awt.Point;
import java.util.*;
import java.util.List;
public class Test {
public static void main(String[] args) {
Queue<Point> q = new LinkedList<Point>();
//queue에 삽입
q.offer(new Point(1, 3));
//queue에서 꺼내기
Point point = q.poll();
int first = point.x;
int second = point.y;
System.out.println(first + " " + second); //1 3
}
}
Point 클래스는 좌표 공간에서 (x, y)의 위치를 나타낼 때 사용되고, x, y의 자료형이 int인 경우만 가능하다.
만약 int가 아닌 다른 자료형으로 사용하고자 한다면, 원하는 자료형으로 Pair 클래스를 직접 생성해서 사용할 수 있다.
[참고]
https://jimoo-vision.tistory.com/28
'Java' 카테고리의 다른 글
[Java] 오버로딩과 오버라이딩(Overloading & Overriding) (0) | 2024.09.10 |
---|---|
[Java] 빠른 입출력 BufferedReader & BufferedWriter (0) | 2024.06.19 |
[Java] JDK 버전 여러 개 전환하며 사용하기 (0) | 2024.05.13 |
[Java] Math 클래스 (0) | 2024.04.17 |