Хотя преобразование ArrayList
к HashSet
эффективно удаляет дубликаты, если необходимо сохранить порядок вставки, я предложил бы, чтобы Вы использовали этот вариант
// list is some List of Strings
Set<String> s = new LinkedHashSet<>(list);
Затем если необходимо возвратиться List
ссылка, можно использовать снова конструктора преобразования.
Простой ответ: среда выполнения Ruby имеет сборщик мусора. В зависимости от среды выполнения (сборщик мусора поколений JRuby / JVM, сборщик мусора IronRuby / CLR, классический сборщик мусора Ruby / mark-sweep) используются разные алгоритмы. Но основы довольно просты:
Если вас это интересует, вам следует ознакомиться с серией блогов о сборке мусора с копированием при записи, созданной командой Phusion, и их усилиях по улучшению схемы ruby gc по умолчанию в Ruby Enterprise Edition. .
http://izumi.plan99.net/blog/index.php/2007/04/05/saving-memory-in-ruby-on-rails/
Другие ссылки этой серии здесь: