映射(1)
----Map映射
数学定义:两个集合之间的元素对应关系
一个输入对应到一个输出
{ 1,张三},{2,李四},{Key,Value},键值对,K-V对
----Java中的Map
(1)Hashtable:同步,性能比较慢,适合处理数据量小
(2)HashMap:不支持同步,快,数据量大
(3)Properties:同步,文件形式存储的,数据量小
映射(2):Hashtable
---- K-V对,K和V都不允许为null
----同步,多线程安全
----无序的
----适合小数据量
----主要方法:clear,contains / containsValue,containsKey,get,put,remove,size
举个例子:
遍历方式:有三种
第一种遍历方式:根据Entry迭代器遍历
第二种遍历方式:根据Key的Iterator遍历
第三种遍历方式:根据Key的Enumeration遍历
映射(3):HashMap
---- K - V对,K和V都允许为null
----不同步,多线程不安全
Map m = Collection.synchronizedMap ( new HashMap ( ... ) )
----无序的
----主要方法:clear containsValue containsKey get put remove size
----HashMap的遍历方式只有两种:(没有根据Key的Enumeration遍历)
第一种遍历方式:根据Entry迭代器遍历
第二种遍历方式:根据Key的Iterator遍历
映射(4):
LinkedHashMap:基于双向链表的维持插入顺序的HashMap,支持null的插入(key和value都可以)
TreeMap:基于红黑树的Map,可以根据key的自然排序或者compareTo方法进行排序输出,value可以是null,但是key不可以,会出现编译没错,运行时报空指针异常
映射(5):Properties
----继承于Hashtable
----可以将K - V对保存在文件中
----适用于数据量少的配置文件,比如windows里面的ini文件
----继承自Hashtable的方法:clear contains / containsValue containsKey get put remove size,除此之外多了四个方法。(1)从文件加载的load方法 (2)写入到文件中的store方法 (3)获取属性getProperty方法 (4)设置属性setProperty方法
----就是说可以把Key - Value对保存到Properties(文件)里面,也可以从Properties(文件)里面取出所有的Key - Value对
映射(6):