TreeMap используется в SortedSet

Почему мы не можем использовать другие классы, такие как HashSet,HashMap или другие классы вместо TreeMap/TreeSet в интерфейсе SortedSet?

import java.util.HashSet;
import java.util.Iterator;
import java.util.SortedSet;
import java.util.TreeSet;

public class SortedSetDemo 
{
    public static void main(String[] args) 
    {   
        SortedSet s=new HashSet();
        s.add("Akash");
        s.add("Prakash");
        s.add("Bhushan");
        s.add("Chetan");
        System.out.println("SortedSet:");
        Iterator itr=s.iterator();
        while(itr.hasNext())
        {
            System.out.println(itr.next());
        }
    }
}

Вывод: Исключение в потоке "main" java.lang.Error: Неразрешенная проблема компиляции: Несоответствие типов: невозможно преобразовать HashSet в SortedSet

at SortedSetDemo.main(SortedSetDemo.java:10)

4 ответа

HashSet не реализует SortedSet интерфейс (HashSet не отсортировано). Поэтому вы не можете назначить HashSet экземпляр к SortedSet переменная.

Вместо использования класса SortedSet ты должен использовать Set интерфейс.

Вы не можете сделать объект HashSet в качестве ссылки на SortedSet.Becoz HashSet exteds AbstractSet не реализован SortedSet. Вы можете использовать интерфейс Set вместо SortedSet.

Set ->AbstractSet->HashSet->LinkedHashSet и
Set -> SortedSet -> TreeSet

SortedSet/SortedMap - это интерфейс для сортировки данных, так что для сортировки данных вы можете напрямую использовать класс TreeSet/TreeMap, поскольку эти классы напрямую реализуют SortedSet/SortedMap

Потому что HashSet это не SortedSet,

В списке реализованных интерфейсов HashSet вы не найдете SortedSet.

Другие вопросы по тегам