网站开发需要工具,免费的ps软件,厦门网络推广公司,友情链接模板MapMap用于保存具有映射关系的数据。Map中key不允许重复#xff0c;value可以重复#xff0c;key和value之间存在单向一对一关系HashMap和Hashtable区别1 Hashtable线程安全、HashMap线程不安全#xff0c;所以HashMap性能高一点2 Hashtable不允许用null做key和value#x…MapMap用于保存具有映射关系的数据。Map中key不允许重复value可以重复key和value之间存在单向一对一关系HashMap和Hashtable区别1 Hashtable线程安全、HashMap线程不安全所以HashMap性能高一点2 Hashtable不允许用null做key和value但hashMap可以。为了成功在HashMap和Hashtable中存储、获取对象用做key的对象必须实现hashCode和equals方法。HashMap和Hashtable不能保证key-value对的顺序他们判断两个key相等的标准是equals返回truehashCode相等。HashMap和Hashtable判断两个value相等的标准是equals返回true与HashSet一样重写key对象类的equals和hashCode应该使他们保持一致且尽量使用不可变对象作为key。否则也会出现和HashSet类似的混乱情形。LinkedHashMap与HashMap的关系和LinkedHashSet与HashSet的关系类似。properties类是Hashtable的子类它key和value只能是String类型使用示例import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.util.Properties;public class TestPropertise {/*** param args* throws IOException* throws FileNotFoundException*/public static void main(String[] args) throws FileNotFoundException, IOException {// TODO Auto-generated method stubProperties pro new Properties();//向properties中添加属性pro.setProperty(username, wildox);pro.setProperty(password, zmz);//将其保存到a.ini文件中pro.store(new FileOutputStream(a.ini), comment line);Properties pro2 new Properties();pro2.setProperty(gender, male);//将a.ini中的属性名-属性值加到pro2中pro2.load(new FileInputStream(a.ini));System.out.println(pro2);}}TreeMap和TreeSet类似使用了红黑树对key进行排序从而保证了TreeMap中所有的key-value对处于有序状态。TreeMap对key的要求与TreeSet对元素的要求基本一致WeakHashMap与HashMap用法相似区别在于HashMap的Key保留对实际对象的强引用而WeakHashMap仅保持弱引用这意味着该对象所有key所引用的对象如果没有被其他强引用变量引用则可能被垃圾回收。IdentityHashMap叶与HashMap用法相似只是该类的key仅当key1 key2是才认为是相等的。EnumMap实现类EnumMap是与枚举类一起使用的Map所有key值必须是单个枚举类的枚举值EnumMap内部以数组形式保存非常紧凑、高效根据key的自然顺序(枚举类中的定义顺序)来维护key-value对的次序EnumMap不允许null作为key但允许null作为value使用示例import java.util.EnumMap;enum Season{SPRING,SUMMER,FALL,WINTER}public class TestEnumMap {/*** param args*/public static void main(String[] args) {// TODO Auto-generated method stubEnumMap em new EnumMap(Season.class);em.put(Season.SUMMER, 夏日炎炎);em.put(Season.SPRING, 春暖花开);System.out.println(em);}}