[java] 스택을 이용한 브라우저 뒤로 가기/앞으로 가기 기능 구현하기
브라우저의 뒤로 가기/앞으로 가기 기능은 스택(Stack)을 이용하여 쉽게 구현할 수 있습니다. 스택은 후입선출(LIFO) 구조로 동작하는 자료구조로, 브라우저의 이동 기록을 저장할 수 있습니다.
스택 구현
import java.util.Stack;
public class BrowserStack {
private Stack<String> backStack;
private Stack<String> forwardStack;
private String currentUrl;
public BrowserStack() {
backStack = new Stack<>();
forwardStack = new Stack<>();
currentUrl = "";
}
public void goTo(String url) {
backStack.push(currentUrl);
currentUrl = url;
forwardStack.clear();
}
public void goBack() {
if (!backStack.isEmpty()) {
forwardStack.push(currentUrl);
currentUrl = backStack.pop();
}
}
public void goForward() {
if (!forwardStack.isEmpty()) {
backStack.push(currentUrl);
currentUrl = forwardStack.pop();
}
}
public String getCurrentUrl() {
return currentUrl;
}
}
위의 코드는 BrowserStack
클래스를 구현한 것입니다. 이 클래스는 goTo
, goBack
, goForward
, getCurrentUrl
메서드를 통해 브라우저의 이동 기능을 제공합니다. backStack
과 forwardStack
은 각각 뒤로 가기와 앞으로 가기 기능을 위해 사용되며, currentUrl
은 현재 페이지의 URL을 저장합니다.
사용 예제
public class Main {
public static void main(String[] args) {
BrowserStack browser = new BrowserStack();
browser.goTo("https://www.google.com");
browser.goTo("https://www.naver.com");
browser.goTo("https://www.github.com");
System.out.println("Current URL: " + browser.getCurrentUrl());
browser.goBack();
System.out.println("Current URL: " + browser.getCurrentUrl());
browser.goForward();
System.out.println("Current URL: " + browser.getCurrentUrl());
}
}
위의 예제 코드는 BrowserStack
클래스를 사용하여 브라우저의 이동 기능을 테스트하는 예제입니다. goTo
메서드로 각각의 URL로 이동한 후, goBack
과 goForward
메서드를 통해 뒤로 가기와 앞으로 가기 기능을 실행하여 현재 URL을 출력합니다.