使用arraylist进行堆栈操作

时间:2013-01-25 19:50:20

标签: java arraylist stack

我在网上四处寻找并在Stack操作中找到了一个使用ArrayLists的类。在查看了arraylist后,我也发现了<E>的名称。我一直跟着它回到Collection,我不明白这个例子中<E>会是什么:

public class MyStack<E> {
   private ArrayList<E> arrList;

   public MyStack() {
       arrList = new ArrayList<E>();
}

   public void push(E item) {
       arrList.add(item);
}

... more methods...
}

“E”是指什么?如果在文档中解释过我或者错过了它或者只是不理解它。

3 个答案:

答案 0 :(得分:3)

<E>表示您将在Stack中使用的数据类型。这个简单的例子就足够了:

MyStack<String> myStack = new MyStack<String>();
myStack.push("Sample string");

这称为Java Generics

答案 1 :(得分:1)

这些是Java generics。您不必事先确定要在数据结构中存储哪种类型的对象。只有在创建堆栈实例时才需要知道对象类型

MyStack<String> stack = new MyStack<String>();

现在你只能将字符串放入堆栈中:

stack.add("A String");

尝试添加其他内容会产生编译错误:

stack.add(new Integer());  // Compiler error
stack.add(2); // Compiler error

答案 2 :(得分:0)

是您从堆栈中推送或弹出的数据或对象。您可以在http://docs.oracle.com/javase/tutorial/java/generics/

中找到有关此主题的更多信息