• Tags
  •         
  • www.breakyizhan.com
  •    

    SortedMap是集合框架中的一个接口。此接口扩展了Map 接口并提供了其元素的总排序(元素可以按键的排序顺序遍历)。实现此接口的Exampled类是TreeMap

    Java中的SortedMap接口与示例

    SortedMap的主要特征是,它按照自然顺序或指定的比较器对键进行排序。因此,如果您想要满足以下条件的map,请考虑使用TreeMap

    • 不允许使用null键或null值。
    • 密钥按自然排序或指定的比较器排序。

    SortedMap的方法

    1. subMap(K fromKey,K toKey):返回此Map部分的视图,其键的范围从fromKey(包含)到toKey(不包括)。
    2. headMap(K toKey):返回此Map部分的视图,其键严格小于toKey。
    3. tailMap(K fromKey):返回此Map部分的视图,其键大于或等于fromKey。
    4. firstKey():返回此Map中当前的第一个(最低)键。
    5. lastKey():返回此Map中当前的最后一个(最高)键。
    6. comparator():返回用于对此Map中的键进行排序的Comparator,如果此Map使用其键的自然顺序,则返回null。

    SortedMap的代码

    public interface SortedMap extends Map
    {
        Comparator comparator();
        SortedMap subMap(K fromKey, K toKey);
        SortedMap headMap(K toKey);
        SortedMap tailMap(K fromKey);
        K firstKey();
        K lastKey();
    }
    // Java code to demonstrate SortedMap
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Set;
    import java.util.SortedMap;
    import java.util.TreeMap;
    
    public class SortedMapExample
    {
        public static void main(String[] args)
        {
            SortedMap<Integer, String> sm =
                        new TreeMap<Integer, String>();
            sm.put(new Integer(2), "practice");
            sm.put(new Integer(3), "quiz");
            sm.put(new Integer(5), "code");
            sm.put(new Integer(4), "contribute");
            sm.put(new Integer(1), "geeksforgeeks");
            Set s = sm.entrySet();
    
            // Using iterator in SortedMap
            Iterator i = s.iterator();
    
            // Traversing map. Note that the traversal
            // produced sorted (by keys) output .
            while (i.hasNext())
            {
                Map.Entry m = (Map.Entry)i.next();
    
                int key = (Integer)m.getKey();
                String value = (String)m.getValue();
    
                System.out.println("Key : " + key +
                                "  value : " + value);
            }
        }
    }
    

    输出:

    Key : 1  value : geeksforgeeks
    Key : 2  value : practice
    Key : 3  value : quiz
    Key : 4  value : contribute
    Key : 5  value : code

     
    转载请保留页面地址:https://www.breakyizhan.com/java/5374.html