/*
需求: 模拟堆栈数据结构,该数据结构的特点是:先进后出.
*/
import java.util.*;
//定义一个自定义的类MyStack<T>来实现堆栈数据结构
class MyStack<T>
{
//内部封装一个LinkedList对象
private LinkedList<T> list;
public MyStack()
{
list = new LinkedList<T>();
}
//自定义一个添加方法
public void myAdd(T t)
{
list.addFirst(t);
}
//自定义一个获取方法
public T get(int index)
{
return list.get(index);
}
//自定义一个获取集合长度的方法
public int mySize()
{
return list.size();
}
//获取迭代器
public Iterator myIterator()
{
return list.iterator();
}
//获取List迭代器.
public ListIterator myListIterator()
{
return list.listIterator();
}
}
//测试类
class MyStackDemo
{
public static void main(String[] args)
{
//创建对象
MyStack<String> ms = new MyStack<String>();
//添加元素
ms.myAdd("1");
ms.myAdd("2");
ms.myAdd("3");
//普通for遍历
for (int i=0 ;i<ms.mySize() ;i++ )
{
String s = ms.get(i);
System.out.println(s);
}
//迭代器遍历
for (Iterator it = ms.myIterator();it.hasNext() ; )
{
String s = (String)it.next();
System.out.println(s);
}
//增强for遍历(foreach),但是报错了.
//编译时报下面的错误.
//MyStackDemo.java:71: 错误: for-each 不适用于表达式类型
for(String s : ms)
{
System.out.println(s);
}
}
}
/*
问题:定义了一个返回的迭代器方法,为什么用增强for遍历的时候还会出错.
求大神解决.
*/ |
|