В моем приложении Java у меня есть
BlockingQueue<HashMap<Integer, double[]>> q
Как мне его клонировать?
Базовая копия : копия Queue
Queue
BlockingQueue<HashMap<Integer, double[]>> q; // = ... BlockingQueue<HashMap<Integer, double[]>> copy = new LinkedBlockingDeque<>(q);
Глубокая копия : копия Queue и Map
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)); }
Очень глубокая копия : копия Queue, Map и double[] *
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); }