LinkedHashMap <String, Object> .clone (); - PullRequest
5 голосов
/ 13 января 2010

создает ли приведенная выше команда глубокую копию элементов LinkedHashMap?

Ответы [ 2 ]

3 голосов
/ 13 января 2010

LinkedHashMap происходит от HashMap, что указывает это для метода clone ():

Возвращает поверхностную копию этой HashMap. экземпляр: ключи и значения сами не клонируются.

(Так что нет, это неглубокий клон, а не глубокий. Не то чтобы это действительно имело значение для струн.)

3 голосов
/ 13 января 2010

В Java clone() почти всегда мелкий. Это по двум причинам:

  1. Performance
  2. Не каждый объект определяет рабочий метод clone(), поэтому глубокое копирование не всегда возможно.
...