黑马程序员技术交流社区
标题:
LinkedList模拟堆栈和队列,附带一个有关异常的疑问
[打印本页]
作者:
fmi110
时间:
2015-7-27 18:42
标题:
LinkedList模拟堆栈和队列,附带一个有关异常的疑问
好久没发帖,话说在函数内部跑出异常并进行catch处理后
即
try
{
。。。。
代码A;
throw new RuntimeException()
}
catch(RuntimeException e)
{
.........
代码B;
}
代码C;
---------------------------------------------------------
catch里的代码运行完后,是不是后面的代码C都要运行啊?
/*
堆栈:先进后出
队列:先进先出
练习:用Linked模拟一个堆栈或者队列
并提供方法:存、取、判断空
*/
import java.util.*;
class MyQueue //队列 先进先出
{
private LinkedList link ;
MyQueue(){
link = new LinkedList();
}
public void add(Object obj){
link.push(obj);//后进的元素角标越小
// link.addFirst(obj);
// link.offerFirst(obj);
}
public Object get(){
return link.pollLast();
}
public boolean isNull(){
return link.isEmpty();
}
public void printQueue(){
System.out.println("队列中的数据:");
for(ListIterator it = link.listIterator();it.hasNext();){
System.out.println(it.next());
}
}
}
class MyStack
{
private LinkedList link ;
MyStack(){
link = new LinkedList();
}
public void add(Object obj){
link.push(obj);//后进的元素角标越小
// link.addFirst(obj);
// link.offerFirst(obj);
}
public Object get() //throws RuntimeException
{
return link.pollFirst();
/*
try
{
if(this.isNull())
throw new RuntimeException();
// return link.removeFirst();//栈空时报错
}
catch (RuntimeException e)
{
System.out.println("异常:栈已空!!No data to pop!!");
// e.printStackTrace();
}
return link.pollFirst();
*/
}
public boolean isNull(){
return link.isEmpty();
}
public void printQueue(){
System.out.println("堆栈中的数据:");
for(ListIterator it = link.listIterator();it.hasNext();){
System.out.println(it.next());
}
}
}
class LinkedListTest
{
public static void main(String[] args)
{
MyQueue myq = new MyQueue();
myq.add("java00");
myq.add("java01");
myq.add("java02");
myq.add("java03");
myq.printQueue();
sop("分割线*******队列取数据");
sop(myq.get());
sop(myq.get());
sop(myq.get());
sop(myq.get());
System.out.println("队列为空:"+myq.isNull());
MyStack mys = new MyStack();
mys.add("java00");
mys.add("java01");
mys.add("java02");
mys.add("java03");
mys.printQueue();
sop("分割线*******堆栈取数据");
sop(mys.get());
sop(mys.get());
sop(mys.get());
sop(mys.get());
sop(mys.get());
System.out.println("堆栈为空:"+mys.isNull());
}
public static void sop(Object obj){
System.out.println(obj);
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2