Определите, что делает этот код: 
 publicstaticvoidmain(Stringl) args) (| 
 Set<Double> set = new TreeSet<>): 
 set.add(21.5): 
 set.add(14.2): 
 set.add(8d): // 1| 
 set.add(8.0): 
 System.out.printin(set): 
 • Код выбрасывает ошибку при запуске 
 • Выводит в консоль 8 8.0 14.2 21.5 
 • Код не скомпилируется на строке 1 
 • Выводит в консоль 8.0 14.2 21.5
Другие предметы Университет Коллекции в Java Java программирование университет код TreeSet ошибка консольный вывод компиляция коллекции Java методы Java
Давайте разберем данный код на языке Java и выясним, что он делает, а также, какие возможные результаты его выполнения.
Вот исправленный вариант кода, чтобы он стал компилируемым:
public static void main(String[] args) {
    Set set = new TreeSet<>();
    set.add(21.5);
    set.add(14.2);
    set.add(8d); // 1
    set.add(8.0);
    System.out.println(set);
}
 
Теперь давайте проанализируем, что происходит в этом коде:
Первая строка внутри метода main создает объект TreeSet, который будет хранить значения типа Double. TreeSet - это структура данных, которая хранит элементы в отсортированном порядке и не допускает дубликатов.
Следующие строки добавляют элементы в множество:
set.add(21.5); - добавляет число 21.5.set.add(14.2); - добавляет число 14.2.set.add(8d); - добавляет число 8 (в виде double).set.add(8.0); - добавляет число 8.0 (также в виде double).Обратите внимание, что TreeSet не допускает дубликатов. Таким образом, добавление 8 и 8.0 не приведет к увеличению количества элементов в множестве, так как они считаются одинаковыми.
Последняя строка System.out.println(set); выводит содержимое множества. Поскольку TreeSet сортирует элементы, они будут выведены в порядке возрастания.
Теперь давайте определим, что же будет выведено на консоль:
В результате выполнения кода, множество будет содержать следующие уникальные значения:
Таким образом, вывод на консоль будет:
[8.0, 14.2, 21.5]
Теперь мы можем ответить на предложенные варианты:
Таким образом, правильный ответ - выводит в консоль 8.0 14.2 21.5.