본문 바로가기
Java

[Java] 자바 Queue에 x, y 값 두 개 삽입(Pair 클래스, Point 클래스)

by nyrimmm 2024. 8. 23.

자바로 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 자바 Queue 값 두개 x,y - jimoo

Queue 구현할 때 2차원 배열의 x,y인덱스를 두 개 삽입하는 경우가 있음. 클래스를 생성해서 해도되지만 Point 클래스로 해도된다. java.awt.Point 란? (간략하게 설명하겠음!) https://docs.oracle.com/javase/7/doc

jimoo-vision.tistory.com