|
|
|
submap(): он копирует элементы основного map'a или хранит ссылки на них ?
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. В доке сказано:submap()Returns a view of the portion of this map whose keys range from fromKey to toKey. <...> The returned map is backed by this map, so changes in the returned map are reflected in this map, and vice-versa В тоже время, в ководстве по сдаче SCJP (SCJP Sun Certified Programmer for Java 6 Exam 310-065.pdf) на странице 627 упорно говорится про копию элементов исходного map'а. По сырцам видно, что вызывается вот этот метод: Код: java 1. 2. 3. 4. 5. Я правильно понимаю, что при вызове submap() на самом деле создает копию элементов исходной коллекции и поддерживает уже равенство их с элементами исходного мапа "на лету" ? И что никакого "view" тут нет на самом деле, оно в доке "для красноречия" прилеплено - так ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2013, 20:06:02 |
|
||
|
submap(): он копирует элементы основного map'a или хранит ссылки на них ?
|
|||
|---|---|---|---|
|
#18+
В обоих доках всё правильно написано. Вы зачем-то зациклились на слове copy вместо того чтобы понять чуть написаного. Ни какой речи о "копировании элементов" иди вообще не может. Коллекция понятия не имеет как правильно создавать копии своих элементов. Возможно вы имели ввиду Map.Entry? Но они тоже никак не копируются, это легко можно посмотреть в исходнике. Речь идёт именно о view. Как показывает пример, добаление в одну из коллекция приводит к появлению элемента в другой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2013, 20:20:52 |
|
||
|
submap(): он копирует элементы основного map'a или хранит ссылки на них ?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, у мну слово 'view' вызывает стойкие ассоциации с чем-то типа хранимого запроса СУБД :-) Который, ясное дело, никаких данных не хранит. BlazkowiczВозможно вы имели ввиду Map.Entryнет, вопрос именно про submap(). Если я всё неверно понял, то объясните, плз, почему в офиц. доке нельзя было по-пролетарски написать про КОПИЮ, как это сделано в SCJP-ководстве ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2013, 20:57:50 |
|
||
|
submap(): он копирует элементы основного map'a или хранит ссылки на них ?
|
|||
|---|---|---|---|
|
#18+
ozzmosissubmap(): он копирует элементы основного map'a или хранит ссылки на них ?Хранит ссылки на них. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2013, 21:04:19 |
|
||
|
submap(): он копирует элементы основного map'a или хранит ссылки на них ?
|
|||
|---|---|---|---|
|
#18+
ozzmosisу мну слово 'view' вызывает стойкие ассоциации с чем-то типа хранимого запроса СУБД :-) Который, ясное дело, никаких данных не хранит. submap View treemap работает аналогично и сама по себе данных не хранит, а только ссылки на исходную коллекцию. ozzmosisЯ правильно понимаю, что при вызове submap() на самом деле создает копию элементов исходной коллекции Не знаю как вы это понимаете Но сформулировали совершенно не правильно. ozzmosisBlazkowiczВозможно вы имели ввиду Map.Entryнет, вопрос именно про submap(). Я про цитату выше о "копировании элементов". Что вы под этим поздразумевате? ozzmosisЕсли я всё неверно понял, то объясните, плз, почему в офиц. доке нельзя было по-пролетарски написать про КОПИЮ, как это сделано в SCJP-ководстве ? Потому что нет никакой "копии". Я же говорю, не зацикливайтесь на этом слове. Читайте остальное. А то выглядит так, как будто вы в тексте нашли единственное знакомое слово - copy и на его основе нафантазировали поведение коллекции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2013, 21:05:44 |
|
||
|
submap(): он копирует элементы основного map'a или хранит ссылки на них ?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczЯ про цитату выше о "копировании элементов". Что вы под этим поздразумевате?Под "копированием элементов" понимаю создание новой коллекции и заполнение её новыми объектами (с такими же <K,V>, что в исходной коллекции). Вместо записи ссылок на существующие элементы исходной коллекции. Но прогнав у себя код Usman'a - разобрался, всё понятно. Дока говорит правду, ководство же сбивает с толку многократным упоминанием 'copy'. Надеюсь, только меня сбивает, а остальным всё сразу становится ясно :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2013, 21:17:51 |
|
||
|
submap(): он копирует элементы основного map'a или хранит ссылки на них ?
|
|||
|---|---|---|---|
|
#18+
ozzmosisПод "копированием элементов" понимаю создание новой коллекции и заполнение её новыми объектами Новые объекты в Java делаются 3мя способами - конструктор - требует от знания семантики констуктора - клонирование - требует Cloneable - десериализация Ничего из вышеперечисленного коллекция не делает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2013, 21:25:13 |
|
||
|
submap(): он копирует элементы основного map'a или хранит ссылки на них ?
|
|||
|---|---|---|---|
|
#18+
ozzmosisНо прогнав у себя код Usman'a - разобрался, всё понятно. В SCJP руководстве тоже пример кода достаточно доходчивый. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2013, 21:26:04 |
|
||
|
submap(): он копирует элементы основного map'a или хранит ссылки на них ?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczВ SCJP руководстве тоже пример кода достаточно доходчивый.В нём выводятся ключи и значения элементов (лошади с собаками и их "коды" вида a,b,c,...), а не адреса, как в примере Usman'a. Именно отсутствие адресов и привело к непониманию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2013, 21:52:06 |
|
||
|
|

start [/forum/search_topic.php?author=zbg&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
15ms |
get forum list: |
24ms |
get settings: |
20ms |
get forum list: |
26ms |
get settings: |
13ms |
get forum list: |
23ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
48ms |
get topic data: |
20ms |
get forum data: |
5ms |
get page messages: |
81ms |
get tp. blocked users: |
3ms |
| others: | 893ms |
| total: | 1183ms |

| 0 / 0 |
