SortedMap 扩展了 Map接口。它确保条目按升序键顺序维护。
当调用map中没有的条目时,有几个方法会抛出 NoSuchElementException 异常。
当对象与映射中的元素不兼容时,会引发 ClassCastException 异常。
如果在映射中不允许 null 的情况下尝试使用 null 对象,则会抛出 NullPointerException。
下表总结了 SortedMap 声明的方法
序号 | 方法及说明 |
---|---|
1 | Comparator comparator( ) 返回调用排序映射的比较器。如果调用映射使用自然顺序,则返回 null。 |
2 | Object firstKey( ) 返回调用映射中的第一个键。 |
3 | SortedMap headMap(Object end) 返回键小于 end 的映射条目的排序映射。 |
4 | Object lastKey( ) 返回调用映射中的最后一个键。 |
5 | SortedMap subMap(Object start, Object end) 返回包含这些条目的映射键大于或等于 start 且小于 end。 |
6 | SortedMap tailMap(Object start) 返回一个映射,其中包含键大于或等于 start 的条目。 |
示例 1
以下示例展示了如何使用 TreeMap 获取 SortedMap 的值
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.SortedMap;
import java.util.TreeMap;
public class MapDemo {
public static void main(String args[]) {
// 创建map
SortedMap<String, Double> map = new TreeMap<>();
// 将元素放入map
map.put("Zara", Double.valueOf(3434.34));
map.put("Mahnaz", Double.valueOf(123.22));
map.put("Ayan", Double.valueOf(1378.00));
map.put("Daisy", Double.valueOf(99.22));
map.put("Qadir", Double.valueOf(-19.08));
// 获取一组条目
Set<Map.Entry<String, Double>> set = map.entrySet();
// 获取迭代器
Iterator<Map.Entry<String, Double>> i = set.iterator();
//显示元素
while(i.hasNext()) {
Map.Entry<String, Double> me = i.next();
System.out.print(me.getKey() + ": ");
System.out.println(me.getValue());
}
}
}
输出
Ayan: 1378.0
Daisy: 99.22
Mahnaz: 123.22
Qadir: -19.08
Zara: 3434.34
示例 2
以下示例展示了如何使用 TreeMap 设置 SortedMap 的值
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.SortedMap;
import java.util.TreeMap;
public class MapDemo {
public static void main(String args[]) {
//创建map
SortedMap<String, Double> map = new TreeMap<>();
// 将元素放入map
map.put("Zara", Double.valueOf(3434.34));
map.put("Mahnaz", Double.valueOf(123.22));
map.put("Ayan", Double.valueOf(1378.00));
map.put("Daisy", Double.valueOf(99.22));
map.put("Qadir", Double.valueOf(-19.08));
// 获取一组条目
Set<Map.Entry<String, Double>> set = map.entrySet();
// 获取迭代器
Iterator<Map.Entry<String, Double>> i = set.iterator();
//显示元素
while(i.hasNext()) {
Map.Entry<String, Double> me = i.next();
me.setValue(me.getValue() * 10);
System.out.print(me.getKey() + ": ");
System.out.println(me.getValue());
}
}
}
输出
Ayan: 13780.0
Daisy: 992.2
Mahnaz: 1232.2
Qadir: -190.79999999999998
Zara: 34343.4
示例 3
以下是一个示例,显示如何使用 TreeMap 获取排序映射条目的键
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.SortedMap;
import java.util.TreeMap;
public class MapDemo {
public static void main(String args[]) {
//创建map
SortedMap<String, Double> map = new TreeMap<>();
// 将元素放入map
map.put("Zara", Double.valueOf(3434.34));
map.put("Mahnaz", Double.valueOf(123.22));
map.put("Ayan", Double.valueOf(1378.00));
map.put("Daisy", Double.valueOf(99.22));
map.put("Qadir", Double.valueOf(-19.08));
// 获取一组条目
Set<Map.Entry<String, Double>> set = map.entrySet();
// 获取迭代器
Iterator<Map.Entry<String, Double>> i = set.iterator();
//显示元素
while(i.hasNext()) {
Map.Entry<String, Double> me = i.next();
System.out.println(me.getKey());
}
}
}
输出
Ayan
Daisy
Mahnaz
Qadir
Zara