代码之家  ›  专栏  ›  技术社区  ›  Employee Juan Ledesma

如何在Java中克隆阻塞队列?

  •  0
  • Employee Juan Ledesma  · 技术社区  · 7 年前

    在我的Java应用程序中

    BlockingQueue<HashMap<Integer, double[]>> q
    

    如何克隆?

    1 回复  |  直到 7 年前
        1
  •  7
  •   azro    7 年前
    1. 基本副本 :副本 Queue

      BlockingQueue<HashMap<Integer, double[]>> q; // = ...
      BlockingQueue<HashMap<Integer, double[]>> copy = new LinkedBlockingDeque<>(q);
      

    1. 深度复制 :副本 队列 以及 Map

      BlockingQueue<HashMap<Integer, double[]>> q; // = ...
      BlockingQueue<HashMap<Integer, double[]>> copy = new LinkedBlockingDeque<>();//or other
      
      for(HashMap<Integer, double[]> map : q){
          copy.add(new HashMap<>(map));
      }
      

    1. 非常深刻的复制 :副本 队列 ,的 地图 S和 double[]

      BlockingQueue<HashMap<Integer, double[]>> q; // = ...
      BlockingQueue<HashMap<Integer, double[]>> copy = new LinkedBlockingDeque<>();//or other
      
      for(HashMap<Integer, double[]> map : q){
          Map<Integer, double[]> mapCopy = new HashMap<>();
          for(Map.Entry<Integer, double[]> entry : map.entrySet()){
              double[] array = entry.getValue();
              mapCopy.put(entry.getKey(), Arrays.copyOf(array, array.length));
          }
          copy.add(mapCopy);
      }