Map接口的常用实现类:HashMap、TreeMap、Properties
HashMap
HashMap是使用频率最高的实现类
允许使用null键和null值,与HashSet一样,不保证映射的顺序
HashMap判断像个key相等的标准是:两个key通过equals方法返回true,hashCode值也相等
HashMap判断两个value相等的标准是:两个value通过equals方法返回true
LinkedHashMap
LinkedHashMap是HashMap的子类,与linkedHashSet一致,linkedHashMap可以维护map的迭代顺序,迭代顺序与key-value插入的顺序一致
TreeMap
TreeMap存储key-value对的时候,需要根据key-value对进行排序,treemap可以保证所有的key-value对处于有序状态
TreeMap的key排序:
自然排序:TreeMap的所有key实现Comparable接口,而且所有的key都是同一个类的对象,否则会抛出异常
定制排序:创建TreeMap的时候,传入一个Comparator对象,该对象负载对TreeMap的所有的key进行排序,此时不需要Map实现Comparable接口
TreeMap判断两个key相等的标准:两个key通过compareTo方法或者compare()方法返回0
若使用自定义的类作为TreeMap的key,所属类需要重写equals、hasCode方法,并且equals返回true,hasCode返回0
Hashtable
线程安全,不允许使用null作为key和value,不能保证key-value的顺序,判断key、value是否相同的方法与HashMap一致
Properties
Hashtable的子类,用于处理属性文件
Properties pros = new Properties();
pros.load(new FileInputStream("jdbc.properties"));
String user = pros.getProperty("user");
System.out.println(user);