본문으로 바로가기

  

 

웹 방문 기록을 스택에 쌓아두는 예제입니다.

이전 : pop

앞 : push

 

Browser.class

package com.company;

import java.util.Stack;

class Browser {
    public Stack back; //이전 방문 기록
    public Stack forward; //다음 방문 기록

    public Browser() {
        this.back = new Stack();
        this.forward = new Stack();
    }

    //주소를 입력하면 웹사이트 방문
    public void goUrl(String url) {
        System.out.println(url + " 접속함");
        back.push(url);
    }

    //방문기록 확인하기
    public void histroy() {
        if(!back.empty() && forward.empty()) {
            System.out.println("url을 켜세요.");
        }
        System.out.println("==============");
        System.out.println("back : " + back);
        System.out.println("now : " + back.peek());
        System.out.println("forward : " + forward);
        System.out.println("==============");
    }

    //뒤로가기
    public void goBack() {
        if(!back.empty()) {
            forward.push(back.pop());
        }
    }

    public void goForward() {
        if(!back.empty()) {
            back.push(forward.pop());
        }
    }
}

 

Main.class

package com.company;

public class Main {
    
    public static void main(String[] args) {
      Browser b = new Browser();
      b.goUrl("네이버");
      b.goUrl("구글");
      b.goUrl("다음");

      b.goBack();
      b.goForward();
      b.histroy();
    }
}