java - 堆栈的元素

标签 java types stack

如何将不同数据类型的元素插入到 Java 中的单个堆栈中?

最佳答案

这似乎违背了generics的目的。 , 但这里是这样的:

Stack<Object>s = new Stack<Object>();
s.add("hello");
s.add(1);           // int is autoboxed to Integer

要注意的是,当从 Stack 中检索 Object 时,需要一些努力才能找出每个元素的类型——它将需要使用 instanceof 和类型转换:

while (!s.isEmpty()) {
  Object e = s.pop();

  if (e instanceof String)
    System.out.println("String: " + (String)e);
  else if (e instanceof Integer)
    System.out.println("Integer: " + (Integer)e);
  else
    System.out.println("Other type: " + e);
}

现在,我们拥有类似于 Java 之前 5 天将泛型添加到语言中的脆弱代码。

关于java - 堆栈的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/906142/

相关文章:

haskell - 从 Haskell 中的 Int 获取 sqrt

Java 堆栈与 ArrayList

java - 我可以使用对象的 vector 来存储扩展该对象的多种类型的对象吗

用于验证最后两个字符的 Java 正则表达式

javascript - 如何将 "fallback"值添加到流程中的可选函数参数?

haskell - 在 Haskell 中使数据类型成为 Show 的实例

c - 为堆栈编写 C 弹出函数

java - Java Stacks 中是否有 popAt、peekAt,因为它继承自其他类?

java - 使用 printf() java 比较 2 个数字

java - 如何在Expression类中使用math.pow()进行计算?