版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JAVA应用开发详解第13章:Java类集
——Map接口MLDN软件教学研发部本章目标掌握Map接口与Collection接口的不同掌握Map与Map.Entry接口的关系掌握Map接口的常用子类:HashMap、Hashtable、TreeMap、WeakHashMap掌握HashMap与Hastable的区别Map接口之前所讲解的Collection、Set、List接口都属于单值的操作,即:每次只能操作一个对象,而Map与它们不同的是,每次操作的是一对对象,即二元偶对象,Map中的每个元素都使用key
value的形式存储在集合之中,此接口定义如下:publicinterfaceMap<K,V>Map接口中的方法No.方法或类类型描述1publicvoidclear()普通清空Map集合2publicbooleancontainsKey(Objectkey)普通判断指定的key是否存在3publicbooleancontainsValue(Objectvalue)普通判断指定的value是否存在4publicSet<Map.Entry<K,V>>entrySet()普通将Map对象变为Set集合5publicbooleanequals(Objecto)普通对象比较6publicVget(Objectkey)普通根据key取得value7publicinthashCode()普通返回哈希码8publicbooleanisEmpty()普通判断集合是否为空9publicSet<K>keySet()普通取得所有的key10publicVput(Kkey,Vvalue)普通向集合中加入元素11publicvoidputAll(Map<?extendsK,?extendsV>t)普通将一个Map集合中的内容加入到另一个Map12publicVremove(Objectkey)普通根据key删除value13publicintsize()普通取出集合的长度14publicCollection<V>values()普通取出全部的valueMap.Entry接口Map.Entry是Map中内部定义的一个接口,专门用来保存key
value的内容。Map.Entry接口定义:publicstaticinterfaceMap.Entry<K,V>Map.Entry接口的常用方法No.方法或类类型描述1publicbooleanequals(Objecto)普通对象比较2publicKgetKey()普通取得key3publicVgetValue()普通取得value4publicinthashCode()普通返回哈希码5publicVsetValue(Vvalue)普通设置value的值Map与Map.EntryMap接口的常用子类Map接口的常用子类:HashMap:无序存放的,是新的操作类,key不允许重复。Hashtable:无序存放的,是旧的操作类,key不允许重复。TreeMap:可以排序的Map集合,按集合中的key排序,key不允许重复。WeakHashMap:弱引用的Map集合,当集合中的某些内容不再使用时,可以清除掉无用的数据,可以使用gc进行回收。IdentityHashMap:key可以重复的Map集合。新的子类:HashMapHashMap本身是Map的子类,直接使用此类为Map接口实例化即可。HashMap类的定义如下:publicclassHashMap<K,V>extendsAbstractMap<K,V>implementsMap<K,V>,Cloneable,Serializable实例操作一:向集合中增加和取出内容packageorg.lxh.demo13.mapdemo;importjava.util.HashMap;importjava.util.Map;public
classHashMapDemo01{
public
static
voidmain(String[]args){ Map<String,String>map=null; //声明Map对象,
map=newHashMap<String,String>(); //key和value是String类
map.put("mldn",""); //增加内容
map.put("zhinangtuan",""); //增加内容
map.put("mldnjava",""); //增加内容
Stringval=map.get("mldn"); //根据key求出value System.out.println("取出的内容是:"+val); //输出Map,调用toString() }}实例操作二:判断指定的key或value是否存在packageorg.lxh.demo13.mapdemo;importjava.util.HashMap;importjava.util.Map;public
classHashMapDemo02{
public
static
voidmain(String[]args){ Map<String,String>map=null; //声明Map对象,
map=newHashMap<String,String>(); //key和value是String类
map.put("mldn",""); //增加内容
map.put("zhinangtuan",""); //增加内容
map.put("mldnjava",""); //增加内容
if(map.containsKey("mldn")){ //查找指定的key是否存在
System.out.println("搜索的key存在!"); }else{ System.out.println("搜索的key不存在!"); }
if(map.containsValue("")){ //查找指定的value是否存在
System.out.println("搜索的value存在!"); }else{ System.out.println("搜索的value不存在!"); } }}实例操作三:输出全部的keypackageorg.lxh.demo13.mapdemo;importjava.util.HashMap;importjava.util.Iterator;importjava.util.Map;importjava.util.Set;public
classHashMapDemo03{
public
static
voidmain(String[]args){ Map<String,String>map=null; //声明Map对象,
map=newHashMap<String,String>(); //key和value是String类
map.put("mldn",""); //增加内容
map.put("zhinangtuan",""); //增加内容
map.put("mldnjava",""); //增加内容
Set<String>keys=map.keySet(); //得到全部的key Iterator<String>iter=keys.iterator(); //实例化Iterator System.out.print("全部的key:"); //输出信息
while(iter.hasNext()){ //迭代输出全部的key Stringstr=iter.next(); //取出集合的key System.out.print(str+"、"); //输出内容
} }}实例操作四:输出全部的valuepackageorg.lxh.demo13.mapdemo;importjava.util.Collection;importjava.util.HashMap;importjava.util.Iterator;importjava.util.Map;public
classHashMapDemo04{
public
static
voidmain(String[]args){ Map<String,String>map=null; //声明Map对象,
map=newHashMap<String,String>(); //key和value是String类
map.put("mldn",""); //增加内容
map.put("zhinangtuan",""); //增加内容
map.put("mldnjava",""); //增加内容
Collection<String>values=map.values(); //得到全部的value Iterator<String>iter=values.iterator(); //实例化Iterator System.out.print("全部的value:"); //输出信息
while(iter.hasNext()){ //迭代输出
Stringstr=iter.next(); //取出value System.out.print(str+"、"); //输出内容
} }}旧的子类:Hashtablepublic
classHashtableDemo01{
public
static
voidmain(String[]args){ Map<String,String>map=null; //声明Map对象,
map=newHashtable<String,String>(); //key和value是String类
map.put("mldn",""); //增加内容
map.put("zhinangtuan",""); //增加内容
map.put("mldnjava",""); //增加内容
Set<String>keys=map.keySet(); //得到全部的key Iterator<String>iter1=keys.iterator(); //实例化Iterator System.out.print("全部的key:"); //输出信息
while(iter1.hasNext()){ //迭代输出全部的key Stringstr=iter1.next(); //取出内容
System.out.print(str+"、"); //输出内容
} Collection<String>values=map.values(); //得到全部的value Iterator<String>iter2=values.iterator(); //实例化Iterator System.out.print("\n全部的value:"); //输出信息
while(iter2.hasNext()){ //迭代输出全部的value Stringstr=iter2.next(); //取出内容
System.out.print(str+"、"); //输出内容
} }}HashMap与Hashtable的区别No.比较点HashMapHashtable1推出时间JDK1.2之后推出的,属于新的操作类JDK1.0时推出,属于旧的操作类2性能采用异步处理方式,性能更高采用同步处理方式,性能较低3线程安全属于非线程安全的操作类属于线程安全的操作类4设置空值允许设置null值不能设置null,如果设置则出现NullPointerException异常排序的子类:TreeMappackageorg.lxh.demo13.mapdemo;importjava.util.Iterator;importjava.util.Map;importjava.util.Set;importjava.util.TreeMap;public
classTreeMapDemo01{
public
static
voidmain(String[]args){ Map<String,String>map=null; map=newTreeMap<String,String>(); //实例化Map对象
map.put("A、mldn",""); //增加内容
map.put("C、zhinangtuan","");//增加内容
map.put("B、mldnjava",""); //增加内容
Set<String>keys=map.keySet(); //得到全部的key Iterator<String>iter=keys.iterator(); //实例化Iterator
while(iter.hasNext()){ //迭代输出
Stringstr=iter.next(); //取出key System.out.println(str+"-->"+map.get(str)); //取出key对应的内容
} }}弱引用类:WeakHashMap之前所讲解的Map
子类中的数据都是使用强引用保存的,即里面的内容不管是否使用都始终在集合中保留,如果希望集合可以自动清理暂时不用的数据就可以使用WeakHashMap类。WeakHashMap的定义如下:publicclassWeakHashMap<K,V>extendsAbstractMap<K,V>implementsMap<K,V>观察弱引用的Map集合packageorg.lxh.demo13.mapdemo;importjava.util.Map;importjava.util.WeakHashMap;public
cla
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年医疗技术临床应用管理制度考核试卷含答案
- 2026内蒙古鄂尔多斯市天安公共交通集团有限公司招聘24人考试参考试题及答案解析
- 2026年四川省攀枝花市高职单招职业技能考试题库含答案详细解析
- 2026年汝州职业技术学院单招综合素质考试题库有答案详细解析
- 2026年新疆天山职业技术大学单招职业技能考试题库含答案详细解析
- 2026中电投广西核电有限公司社会招聘25人考试参考试题及答案解析
- 人教版九年级物理导学案
- 办公用品管理制度
- 2025-2025沪教牛津版初中英语七年级上册全套单元测试题
- 小学科学探究式教学设计模板
- 《1+X幼儿照护(中级)》课件-气管异物急救处理
- 情感体验量表DESⅡ-附带计分解释
- 水泵设备安装施工方案百度
- 铝锭买卖协议范本
- GB/T 43103-2023金属材料蠕变-疲劳损伤评定与寿命预测方法
- QCC-SMT降低空焊虚焊不良专案课件
- 超星尔雅学习通《高职劳动教育(金华职业技术学院)》2023章节测试附答案
- 勾股定理的逆定理(人教版八年级数学下册课件)
- GB/T 22751-2008台球桌
- GA/T 148-2019法医学病理检材的提取、固定、取材及保存规范
- 《山东省房屋修缮工程消耗量定额》建筑分册交底资料
评论
0/150
提交评论