- 1、本文档共31页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实现Map接口的集合类用来存储键-值映射对。
JDK API中Map接口的实现类常用的有
HashMap
TreeMap
Hashtable (不常用)
Map实现类中存储的键-值映射对是通过键来唯一标识,Map底层的键是用Set来存放的。
所以存入HashMap中的映射对的键如果是自定义的类,应该重写hashCode()和equals()方法。
常用String作为Map的键。;MapK,V接口中定义的一些常用方法:
V put(K key, V value) //将指定的键-值对存入Map中
V get(Object key); //返回指定键所映射的值
V remove(Object key); //根据指定的键把此键-值对从Map中移除。
boolean containsKey(Object key); //判断此Map是否包含指定键的键-值对。
boolean containsValue(Object value);//判断此Map是否包含指定值的键-值对。
boolean isEmpty(); //判断此Map中是否有元素。
int size(); //获得些Map中键-值对的数量。
void clear(); //清空Map中的所有键-值对。
SetK keySet(); //返回此Map中包含的键的Set集。
CollectionV values(); //返回此Map中包含的值的Collection集。值是可重复的.;HashMap内部对键用Set进行散列存放。所以根据键去取值的效率很高。
它是使用频率最高的一个集合。
补充:封装类对象的hashCode();Demo;Demo;Hashtable是JDK1.0就有了, HashMap是JDK1.2引入的,操作大多跟Hashtable相同,建议使用HashMap.
Hashtable (注意大小写)
是同步的(线程安全的);
不能有null键,也不能有null值,否则运行时出空指针异常;
基于陈旧的DictionaryK,V类 ,有contains() 方法,用于测试此映射表中是否存在指定值,等同于HashMap类中的containsValue()(本类中也有);Hashtable与HashMap的不同(笔试常考);TreeMap内部使用红黑树结构对key进行排序存放,所以放入TreeMap中的key-value对的key必须是可排序的。
TreeMap()使用键的自然顺序构造一个新的、空的树映射。
TreeMap(Comparator? super K? comparator) 构造一个新的、空的树映射,该映射根据给定比较器进行排序。;TreeMap练习;TreeMap练习;Map.Entry是Map中内部定义的一个static接口,专门用来保存key?value的内容。
Map与Map.Entry;对于Map接口来说,其本身是不能直接使用迭代进行输出的,因为Map中的每一个位置存放的是一对值(key?value),而Iterator中每次只能找到一个值。所以如果非要使用迭代进行输出的话,要按照以下操作步骤完成:
1.将Map的实例通过entrySet()方法变为Set接口对象
2.通过Set接口的实例的iterator() 将Iterator实例化
3.通过Iterator迭代输出,每个内容都是Map.Entry的对象
4.通过Map.Entry进行key?value的分离。getKey,getValue
Map大多时候用于存放和查找,遍历输出属于少数操作。;Map.Entry;选择标准:
存放要求
无序,无下标,不能随机访问-Set
有序,有下标,可以随机访问-List
不可重复--Set
可重复--List
key-value对,较多存放和查询,较少遍历-Map
读和改(插入删除)的效率
Hash*-两者都最高
ArrayList-读(指定下标随机访问)快,插入/删除元素慢
LinkedList-读(指定下标随机访问)慢,插入/删除元素快;自定义泛型;自定义泛型;受限制的泛型;受限制的泛型;受限制的泛型;受限制的泛型;受限制的泛型;受限制的泛型;导出项目代码;Collection接口
Iterator接口
Comparable接口(自然顺序比较,TreeSet,TreeMap)、Comparator接口(自定义比较器, TreeSet,TreeMap)
Set、List、Map接口
Collections类
ArrayList、LinkedList、Vector类
HashSet、LinkedHashSet、TreeSet类
HashMap、Hashtable、TreeMap类
集合的泛型操作(JDK5.0)
文档评论(0)