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.