Что выведет код Middle Коллекции изнутри обновлено

Что выведет: TreeSet с компаратором по длине

Вопрос

Что выведет программа (Java 21)? Каждый вывод println с новой строки.

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Set<String> set = new TreeSet<>(Comparator.comparing(String::length));
        set.add("pear");
        set.add("fig");
        set.add("plum");
        set.add("banana");
        System.out.println(set);
        System.out.println(set.contains("kiwi"));
        TreeMap<Integer, String> map = new TreeMap<>(Map.of(10, "a", 20, "b", 30, "c"));
        System.out.println(map.floorKey(25) + " " + map.ceilingKey(25) + " " + map.headMap(20));
    }
}

Попробуйте сами

Напишите, что выведет код: каждый вывод с новой строки.

Показать ответ и разбор

Коротко

Код выведет: [fig, pear, banana], true, 20 30 {10=a}. TreeSet сравнивает элементы компаратором: plum той же длины, что и pear, считается дубликатом и не добавляется.

Что выведет

[fig, pear, banana]
true
20 30 {10=a}

Разбор

TreeSet сравнивает элементы компаратором: plum той же длины, что и pear, считается дубликатом и не добавляется. По той же причине contains("kiwi") true: найден элемент длины 4. floorKey(25) ближайший ключ не больше 25, ceilingKey(25) не меньше. headMap(20) ключи строго меньше 20.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме