📅  最后修改于: 2023-12-03 15:31:55.423000             🧑  作者: Mango
在Java中,SortedMap
是一个有序的Map
接口。它继承自Map
接口,额外提供了按照键的自然顺序或者给定的比较器进行排序的功能。同时,该接口中提供了entrySet()
方法用于返回SortedMap
中的所有键值对,下面是该方法及其示例的介绍。
entrySet()
方法用于返回SortedMap
中所有键值对的集合,即Set<Map.Entry<K,V>>
对象。其中,Map.Entry<K,V>
是Map
中的内部接口,表示一个键值对。该接口中包含两个方法:getKey()
和getValue()
,分别用于获取键和值。
SortedMap
中的键值对集合是按照键的顺序排列的,因此,迭代访问该集合可以得到有序的键值对。
方法签名如下:
Set<Map.Entry<K,V>> entrySet();
假设有一个SortedMap
对象sortedMap
,其中存储了字符串类型的键和整型类型的值。我们可以通过entrySet()
方法,获取所有键值对并遍历它们,示例代码如下:
SortedMap<String, Integer> sortedMap = new TreeMap<>();
sortedMap.put("a", 3);
sortedMap.put("c", 1);
sortedMap.put("b", 2);
Set<Map.Entry<String, Integer>> entrySet = sortedMap.entrySet();
for (Map.Entry<String, Integer> entry : entrySet) {
String key = entry.getKey();
Integer value = entry.getValue();
System.out.println("Key: " + key + ", Value: " + value);
}
上述代码首先创建了一个TreeMap
对象sortedMap
,并添加了三个键值对。然后,通过entrySet()
方法获取了所有键值对的集合entrySet
,并通过for
循环遍历该集合并输出每个键值对的键和值。
程序运行结果如下:
Key: a, Value: 3
Key: b, Value: 2
Key: c, Value: 1
从输出结果可以看出,输出的键值对是按照键的自然顺序排列的。这是因为sortedMap
是一个TreeMap
对象,它按照键的自然顺序进行排序。如果我们要按照其他顺序进行排序,则需要传入对应的比较器对象。