Вот как собрать OpenSSL в Windows с использованием Cygwin и Android NDK
Запустите cmd
с пользователем Администратор и выполните
SET CYGWIN=winsymlinks:nativestrict
В то же самое окно cmd, откройте Cygwin:
cygwin.bat
Сделайте скрипт исполняемым:
chmod +x *.sh
В Cygwin выполните:
/cygdrive/c/dev/openssl-source/openssl-build.sh /cygdrive/c/dev/android-ndk-r12b /cygdrive/c/dev/openssl-source/openssl-1.0.2j 15 armeabi-v7a 4.9 /home/user/openssl
Копировать libcrypto.so и включите файлы / * в этот модуль. Используйте cp -r
для копирования по ссылкам.
А как насчет других объектов, упомянутых в элементах? Насколько глубоко вы хотите создать клон?
Если элементы вашей карты не имеют глубоких ссылок и / или все Serializable
, вы можете сериализовать карту через ObjectOutputStream
в ByteArrayOutputStream
, а затем сразу десериализовать его.
Единственная альтернатива - сделать это вручную.
Как только вы узнаете, что элементы вашей пары ключ / значение можно клонировать:
HashMap<Foo, Bar> map1 = populateHashmap();
HashMap<Foo, Bar> map2 = new HashMap<Foo, Bar>();
Set<Entry<Foo, Bar>> set1 = map1.entrySet();
for (Entry<Foo, Bar> e : l)
map2.put(e.getKey().clone(), e.getValue().clone());
Взгляните на метод deepClone на http://www.devdaily.com/java/jwarehouse/netbeans-src/db/libsrc/org/netbeans/lib/ddl /impl/SpecificationFactory.java.shtml. Он не является универсальным, но включает несколько встроенных типов (включая сам HashMap, рекурсивно) и, очевидно, может быть расширен.