【问题标题】:Stack operations using an arraylist使用数组列表进行堆栈操作
【发布时间】:2013-01-25 19:50:19
【问题描述】:

我在网上四处寻找,发现了一个在堆栈操作中使用 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”指的是什么?如果文档中对此进行了解释,我要么错过了它,要么就是不理解它。

【问题讨论】:

标签: java arraylist stack


【解决方案1】:

&lt;E&gt; 表示您将在Stack 中使用的数据类型。简单的例子就足够了:

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

这叫Java Generics

【讨论】:

  • 谢谢。我正在上初学者课程,我不记得以前遇到过。事实上,我浏览了阅读列表,并没有提到它(虽然有数百个链接,但可能在那里)
【解决方案2】:

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

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

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

stack.add("A String");

尝试添加任何其他内容会导致编译错误:

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2011-06-17
      • 2016-10-25
      • 1970-01-01
      • 2015-11-11
      • 1970-01-01
      • 2013-06-19
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多