任务描述
本关任务:使用 TreeMap 集合操作城市名以及城市编码。
相关知识
什么是 TreeMap
TreeMap 是 Map 接口的实现类,它存储的元素是键值对(key-value)映射,其中 key 值不允许为 null,在添加、删除元素上,TreeMap 要比 HashMap 性能差。另外,它既是无序的,又是有序的。无序指的是存储元素顺序和输出顺序不同,有序指的是 TreeMap 会默认对元素的键进行自然排序(具体排序规则可参考 这个实训中 TreeSet 的排序规则)。
import java.util.*;
public class CollTest {
public static void main(String[] args) {
// 请在Begin-End间编写代码
/********** Begin **********/
// 第一步:接收给定字符串
Scanner in =new Scanner(System.in);
String a=in.nextLine();
// 第二步:创建HashMap集合,key为城市编码,value为城市名
Map<String,String> l=new TreeMap<>();
// 第三步:切割字符串
String [] a1=a.split(",");
int n=a1.length;
// 第四步:把元素添加到集合中
for(int i=0;i<n;i++){
String[] x=a1[i].split(":");
l.put(x[0],x[1]);
}
// 第五步:逆序输出所有城市编码
NavigableSet<String> strings = ((TreeMap<String, String>) l).descendingKeySet();
//Set<String> strings = l.descendingkeySet();
System.out.println(strings);
// 第六步:输出城市编码最大和最小的元素
Map.Entry<String, String> little = ((TreeMap<String,String>) l).firstEntry();
Map.Entry<String, String> big = ((TreeMap<String,String>) l).lastEntry();
System.out.print("城市编码最大的元素:"+big);
System.out.println("。城市编码最小的元素:"+little);
// 第七步:删除城市编码最小的元素
// l.pollFirstEntry();
((TreeMap<String,String>) l).pollFirstEntry();
System.out.println("删除的元素是:"+little);
System.out.println(l);
/********** End **********/
}
}