------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
Map架构小议
Map类最大的特点就是键值对应。也就是每一个Key都有一个对应的Value。
Map类的分类:HashMap和TreeMap
HashMap:每一个键都会有值,并且对于Map而言,键不会重复。如下面一个例子:
class Demo{
public static void main(String[] args){
Map<String, String> messages = new HashMap<>();
messages.put("Justin", "今年20岁");
messages.put("Monica", "今年22岁");
messages.put("Irene", "今年21岁");
Scanner sc = new Scanner(System.in);
System.out.println("要打印谁的信息?");
String mes = messages.get(sc.nextLine());
System.out.println(mes);
System.out.println(messages);
}
}
结果如下:
结果一:
要打印谁的信息?
Monica
今年22岁
{Monica=今年22岁,Justin=今年20岁,Irene=今年21岁}
结果二:
要打印谁的信息?
Hello
null
{Monica=今年22岁,Justin=今年20岁,Irene=今年21岁}
从结果中可以看出,HashMap建立键值对应后,键是无序的,如果要使键有一个顺序,就要使用到TreeMap。
TreeMap:同样的,使用TreeMap也会产生键值对,并且键不会重复。唯一的区别是使用TreeMap取出的键值会根据键进行排序。同刚才的例子,代码如下:
import java.util.*;
class Demo{
public static void main(String[] args){
Map<String, String> messages = new TreeMap<>();
messages.put("Justin", "今年20岁");
messages.put("Monica", "今年22岁");
messages.put("Irene", "今年21岁");
Scanner sc = new Scanner(System.in);
System.out.println("要打印谁的信息?");
String mes = messages.get(sc.nextLine());
System.out.println(mes);
System.out.println(messages);
}
}
结果如下:
要打印谁的信息?
Monica
今年22岁
{ Irene=今年21岁,Justin=今年20岁,Monica=今年22岁 }
由结果可知,在进行所有信息打印的时候,结果根据键进行了排序。