在Java中,如何轻松地复制Stack <myelement>的实例?</myelement>

时间:2012-11-01 19:25:38

标签: java stack clone deep-copy

e.g。

class StackElement {
    String method;
    int state;
}

Stack<StackElement> stack;

我希望获得此stack的深层副本,其中包含我自己定义的StackElement

  1. Java是否为此提供了合适的API?

  2. 如果没有,如何以简单和一般的方式实现它?

2 个答案:

答案 0 :(得分:1)

最简单的方法是遵循以下简单步骤:

  1. 制作StackElement工具Serializable;
  2. 将整个堆栈序列化为字节数组;
  3. 将其反序列化为深层副本。
  4. 缺点是性能低于顶级。

    请注意Stack被认为是一种考古文物,在{1}}中被废弃在Java 1.2中,可以用作堆栈。它被淘汰的原因是每个方法都是LinkedList,对客户端代码的线程安全性几乎没有增加,但引入了性能损失甚至可能的死锁。

答案 1 :(得分:0)

我不确定您的案例是否存在特殊问题,但您可以查看一些选项here