Клонирование растений

  • 12
  • Недоступна
Класс Plant не должен реализовывать интерфейс Cloneable. Реализуй механизм глубокого клонирования для Tree.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (82)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Andrey tech support engineer в Weigandt consulting
13 ноября, 17:33
когда видишь в названии задачи "Epic" и "Tree" ожидаешь увидить рекурсивный обход, а не задачу с решением в 3 строчки
Игорь Евгеньевич
Уровень 36, Хабаровск, Россия
12 ноября, 10:11
Ничего эпичного
Andrii Honyshko
Уровень 24, Киев
7 ноября, 15:42
Вы решили лучше, чем 69%
Yarik Таксист в Яндекс.Такси
3 октября, 05:02
В чем EPIC ?
Max Zap
Уровень 41
28 сентября, 11:55
Этот Epic как-то даже легче предыдущего медиума. Хотя всё то-же самое, только скопировать отдельно нужно массив строк. А в конструктор tree передать name суперкласа.
Torba Z Dimom
Уровень 23, Киев, Украина
19 сентября, 16:49
не эпик. максимум 2 строчки. не забывайте, что арей передаються по ссылке.
Blame
Уровень 35, Омск, Россия
11 июня, 03:21
задачу приняло, но почему то были разные хешкоды массивов
Orion
Уровень 29, Санкт-Петербург, Россия
23 апреля, 19:17
Очень странное чувство, что я где-то что-то важное упустил, ибо лёгкие и средние задачи у меня в последнее время решаются только с помощью мата и крепкого кофе, а вот харды или это эпик с первого раза за 5 минут.
titix
Уровень 22
22 апреля, 10:22
Способ дико костыльный, но возможно кому то поможет. Класс Plant не должен поддерживать интерфейс Cloneable, но никто не запрещает ему поддерживать Serializable. А вот верное решение удивило. Это разве глубокое клонирование?
Артур Прохоренко
Уровень 28, Гомель, Белоруссия
3 апреля, 13:53
Кому интересно проверить решение:
System.out.println("is trees the same: " + (tree == clone));
        System.out.println("is trees equal: " + (tree.equals(clone)));
        System.out.println("is trees brunches the same: " + (tree.branches == clone.branches));
        System.out.println("is trees brunches equal: " + (Arrays.equals(tree.branches, clone.branches)));
        System.out.println("is trees names the same: " + (tree.getName() == clone.getName()));
Я так и не понял правильное клонирование String. Я понимаю, что он imutable и про пул литералов слышал, но сути это refference type, а значит его глубокое копирование - это пересоздание и заполнение данными исходника.