我在网上四处寻找并在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”是指什么?如果在文档中解释过我或者错过了它或者只是不理解它。
答案 0 :(得分:3)
<E>
表示您将在Stack
中使用的数据类型。这个简单的例子就足够了:
MyStack<String> myStack = new MyStack<String>();
myStack.push("Sample string");
答案 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/
中找到有关此主题的更多信息