SortedSet中使用的TreeMap

时间:2015-04-29 07:22:50

标签: java collections sortedset

为什么我们不能在SortedSet接口中使用其他类(如HashSet,HashMap或其他类)代替TreeMap / TreeSet?

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 个答案:

答案 0 :(得分:3)

HashSet未实现SortedSet接口(HashSet未排序)。因此,您无法将HashSet实例分配给SortedSet变量。

答案 1 :(得分:0)

您必须使用SortedSet接口。

,而不是使用类Set

答案 2 :(得分:0)

因为HashSet不是SortedSet

the list of HashSet's implemented interfaces中,您找不到SortedSet。

答案 3 :(得分:0)

你不能在散列的refence中创建HashSet的对象。散列的散列.Becoz的散列是没有实现的.RedSet也没有实现SortedSet。你可以使用Set接口代替SortedSet。

Set - > AbstractSet - > HashSet - > LinkedHashSet和
设置 - > SortedSet - > TreeSet

SortedSet / SortedMap是对数据进行排序的接口,这样对于数据排序你可以直接使用TreeSet / TreeMap类becoz这些类直接实现SortedSet / SortedMap