|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
25.11.2016, 14:49 | #1 |
Пользователь
Регистрация: 27.10.2016
Сообщений: 26
|
Глубокое клонирование Arraylist
Народ, понимаю, что вопрос уже давно избитый.
Сколько не пытался, так и не понял как это сделать. Во всех примерах клонируют объект, создают для него интерфейс.. На моём этапе познаний всё чересчур запутанно. Есть переменная типа: ArrayList<ArrayList<Float>> data; (то есть список списков типа флоат). Нужно клонировать в другой ArrayList<ArrayList<Float>> cloned_data; Как это сделать? Нашёл библиотеку cloning-1.9.3, но у нее есть глюк, над которым автор еще работает, что не позволяет мне её использовать. На выходе я должен получить cloned_data, и при изменении его содержимого, это не должно сказываться на data. Заранее спасибо! |
26.11.2016, 14:52 | #2 |
Пользователь
Регистрация: 27.10.2016
Сообщений: 26
|
Неужели никто с этим не сталкивался?
|
26.11.2016, 14:59 | #3 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Так а что мешает пройти в цикле копируя в новый список?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
26.11.2016, 15:49 | #4 |
Пользователь
Регистрация: 27.10.2016
Сообщений: 26
|
Всмысле? То есть нужно перебрать все переменные списка?
Я думал, что есть способы клонирования уже гттовые.. Например при обычном клонирование ни чего перебирать не нужно.. |
26.11.2016, 15:58 | #5 |
Пользователь
Регистрация: 27.10.2016
Сообщений: 26
|
Вот нарыл инфу.. http://howtodoinjava.com/core-java/c...oning-in-java/
используют super.clone, а не clone. Но опять же, они определяют метод для клонирования. Но пример клонирования объекта. arraylist так же объект, но как ему этот супер клон определить..? |
26.11.2016, 16:23 | #6 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
"обычное клонирование" это как?
Для Float не нужен clone, он и так immutable. Поэтому ArrayList<Float> вроде можно скопировать через Код:
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
26.11.2016, 16:43 | #7 | |
Пользователь
Регистрация: 27.10.2016
Сообщений: 26
|
Цитата:
Интересует другой момент: если оригинальный список объявить как static.. Можно ли будет его просто скопировать? Сейчас просто нет доступа к компу.. только вечером смогу поковыряться.. |
|
26.11.2016, 16:50 | #8 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Значение чего? экземпляры Float immutable, их состояние никак не поменять.
Речь о ArrayList<Float>. А первый список (ArrayList<ArrayList...>) да, просто в цикле можно создать новые.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
26.11.2016, 16:54 | #9 |
Пользователь
Регистрация: 27.10.2016
Сообщений: 26
|
Обычный клон, это который поверхностный, и он для моей цели не подходит.
Нужен метод глубокого клонирования... То есть нужно пеиеопределить метод клон для объекта arraylist, так, что бы он стал глубоким. А как именно это сделать я не врубаю.. хоть при еров в сети много, но они все на объекты созданные автором и мне не понятно как их применить у меня... |
26.11.2016, 17:04 | #10 | |
Пользователь
Регистрация: 27.10.2016
Сообщений: 26
|
Цитата:
А что вы скажите на счет преписания к оригиналу static ? Это как то может помочь? То есть: static ArrayList<ArrayList<Float>> original . . какието действия по заполнению. Потом в другом методе этого же класса ArrayList<ArrayList<Float>> clon_data; clon_data=original; Это как то возможно? |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
клонирование одностраничника | polinaemma | Фриланс | 1 | 11.03.2016 05:23 |
Qt, клонирование QObject | pproger | Qt и кроссплатформенное программирование С/С++ | 0 | 28.01.2012 16:02 |
Клонирование компонента | chandrasecar | Общие вопросы Delphi | 8 | 31.10.2010 17:57 |
Клонирование Windows XP | DJ HITMAN | Windows | 6 | 20.08.2010 13:35 |
Глубокое копирование | Chor | Общие вопросы .NET | 6 | 12.06.2009 01:19 |