第三部分java应用程序设计类集map接口_第1页
第三部分java应用程序设计类集map接口_第2页
第三部分java应用程序设计类集map接口_第3页
第三部分java应用程序设计类集map接口_第4页
第三部分java应用程序设计类集map接口_第5页
已阅读5页,还剩15页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论