-3

我在网上环顾四周,发现了一个在 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”指的是什么?如果文档中对此进行了解释,我要么错过了它,要么就是不理解它。

4

3 回答 3

3

<E>表示您将在Stack. 简单的例子就足够了:

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

这称为Java 泛型

于 2013-01-25T20:10:57.900 回答
1

这些是Java 泛型。这让您不必事先准确指定要存储在数据结构中的对象类型。像这样创建堆栈实例时,您只需要知道对象类型

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

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

stack.add("A String");

尝试添加任何其他内容会给您一个编译错误:

stack.add(new Integer());  // Compiler error
stack.add(2); // Compiler error
于 2013-01-25T20:16:30.347 回答
0

是您从堆栈中压入或弹出的数据或对象。您可以在http://docs.oracle.com/javase/tutorial/java/generics/中找到有关此主题的更多信息

于 2013-01-25T20:23:05.537 回答