题目
实现浏览器的前进与后退
实现方法
使用俩个栈,一个栈存放可后退的地址,一个栈存放可前进的的地址。
Stack stackForward=new Stack();
Stack stackBackward=new Stack();
//前进
public void goForward(){
Object popBackward = stackBackward.pop();
stackForward.push(popBackward);
System.out.println("前进的url:"+popBackward);
}
//后退
public void goBackward(){
Object popForward = stackForward.pop();
stackBackward.push(popForward);
System.out.println("后退的url:"+popForward);
}
分析栈的变化
比如一次打开三个网址:https://www.baidu.com/,https://blog.youkuaiyun.com/cxh6863,https://youzan.github.io/vant/#/zh-CN/cell。
那就代表在前进栈里存放这三个地址。
后退三次依次变化
接着再前进三次的变化
源码
public class SampleBrowser {
Stack stackForward=new Stack();
Stack stackBackward=new Stack();
public static void main(String[] args) {
SampleBrowser browser=new SampleBrowser();
browser.open("https://www.baidu.com/");
browser.open("https://blog.youkuaiyun.com/cxh6863");
browser.open("https://youzan.github.io/vant/#/zh-CN/cell");
browser.goBackward();
browser.goBackward();
browser.goBackward();
browser.goForward();
browser.goForward();
browser.goForward();
}
public void open(String url){
stackForward.push(url);
}
//前进
public void goForward(){
Object popBackward = stackBackward.pop();
stackForward.push(popBackward);
System.out.println("前进的url:"+popBackward);
}
//后退
public void goBackward(){
Object popForward = stackForward.pop();
stackBackward.push(popForward);
System.out.println("后退的url:"+popForward);
}
}
运行结果
初始值
第一次后退后
第二次后退后
第三次后退后
第一次前进后
第二次前进后
第三次前进后