ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:403.12KB ,
资源ID:4075497      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4075497.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Map集合集合练习.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Map集合集合练习.docx

1、Map集合集合练习Map集合、集合练习1. Map集合1.1. Map集合介绍Collection集合的特点:集合中存储的所有元素都是单一元素,元素和元素之间没有必然的关系。因此我们把Collection集合也称为单列集合。Map集合:Map集合中保存的是一组(一对)数据。数据之间存在着一定的对应关系。Map集合就可以将数据的对应关系维护起来。当这样的数据存储在Map集合中,我们取出的时候,就可以根据这种对应关系获取到其中这组数据。public interface Map将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。 Map集合中的key是唯一的。每个key都有一个

2、value值和其一一对应。1.2. Map集合中的方法1.2.1. 添加方法通过演示Map接口中的Map方法,发现put方法可以将指定的一组数据保存到集合中。但是put方法有返回值:如果调用put方法的时候,在保存的key和value值时,key在集合中不存在,这时相当于给集合中保存了一组新的数据。这时put方法得到的null。如果保存的这组数据中的key在集合中已经存在,这时会用当前的value值覆盖掉key对应的原来的value值,并返回被覆盖的那个value值。总结:put方法可以将一组对象保存到Map中,返回的当前key对应的原始的value值。如果key是第一次出现返回的null。如

3、果不是第一次,就会修改原始的value值。返回原来的value值1.2.2. 删除方法根据指定的key,删除key和value这组数据,返回key对应的value值。/* * 演示Map中的删除方法 */publicclass MapDemo2 publicstaticvoid main(String args) /创建集合对象 Map map = new HashMap()。map.put(aa, bb)。map.put(cc, dd)。map.put(ee, fff)。 System.out.println(map)。/删除方法 Object o = map.remove(aaa)。 Sy

4、stem.out.println(o)。 System.out.println(map)。/清空map.clear()。 System.out.println(map)。 1.2.3. 获取方法根据指定的key获取对应的value值。如果给出的key在集合中没有,返回null。/* * Map集合中的获取方法 */publicclass MapDemo3 publicstaticvoid main(String args) /创建集合对象 Map map = new HashMap()。map.put(aa, bb)。map.put(cc, dd)。map.put(ee, fff)。/打印 S

5、ystem.out.println(map)。 Object o = map.get(aa)。 System.out.println(o)。 System.out.println(map)。 1.2.4. 判断方法/* * 演示Map集合中的判断方法 */publicclass MapDemo4 publicstaticvoid main(String args) / 创建集合对象 Map map = new HashMap()。map.put(aa, bb)。map.put(cc, dd)。map.put(ee, fff)。/判断集合中是否包含指定的key System.out.printl

6、n(map.containsKey(aa)。 System.out.println(map.containsValue(bb)。 System.out.println(map.isEmpty()。 1.3. Map集合的遍历1.3.1. Map集合遍历介绍Map集合中保存的key-value一组数据。它们不能直接使用Iterator进行遍历。如果需要对Map集合进行遍历,这时必须先将Map集合转成Collection下的某个集合容器,然后再使用Iterator进行遍历。Map集合的遍历有两种方式:1、 获取Map中的所有key,然后将这些key保存到Set集合中。这时就可以使用Iterator

7、进行遍历,进而就能得到每个的单独的key值,再使用Map中的get(key)方法得到key对应的value值。2、 获取到Map中的key和value这组数据,再封装成一个新的对象。1.3.2. keySet遍历/* * 使用Map集合中的keySet方法遍历Map集合 */publicclass KetSetDemo publicstaticvoid main(String args) /创建集合对象 Map map = new HashMap()。map.put(aa, bb)。map.put(cc, dd)。map.put(ee, ff)。/获取到Map中的所有key组成的Set集合 S

8、et set = map.keySet()。/遍历Set集合for( Iterator it = set.iterator() 。 it.hasNext() 。 )/获取到Set集合中的某个key值 Object key = it.next()。/调用Map集合中的get方法,得到key对应的value值 Object value = map.get(key)。 System.out.println(key+.+value)。 1.3.3. entrySet遍历/* * 使用Map集合中的 entrySet 方法遍历Map集合 */publicclass EntrySetDemo public

9、staticvoid main(String args) / 创建集合对象 Map map = new HashMap()。map.put(aa, bb)。map.put(cc, dd)。map.put(ee, ff)。/ 获取到所有key和value组成的Entry对象,保存到Set集合中 Set set = map.entrySet()。/ 遍历Set集合for (Iterator it = set.iterator()。 it.hasNext()。) /已经获取到key和value组成的Entry对象 Object obj = it.next()。/由于取出的数据被提升成Object类型

10、,这时需要向下转型 Entry entry = (Entry) obj。 System.out.println(entry.getKey()+.+entry.getValue()。 就业班中学习JavaWEB中的JSP中的JSTL技术时,其中有foreach的标签,遍历Map集合的时候,使用的entrySet。1.3.4. values方法获取到的Map集合中的所有value值组成的Collection集合。/* * 演示Map集合中的values方法 */publicclass ValuesDemo publicstaticvoid main(String args) /创建集合对象 Map

11、 map = new HashMap()。map.put(aa, bb)。map.put(cc, dd)。map.put(ee, ff)。/获取到Map集合中的所有value值 Collection coll = map.values()。/遍历集合for(Iterator it = coll.iterator() 。 it.hasNext() 。) System.out.println(it.next()。 1.4. HashMap演示基于哈希表的Map接口的实现。此实现提供所有可选的映射操作,并允许使用null值和null键。(除了非同步和允许使用 null 之外,HashMap类与Has

12、htable大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。HashMap是Map接口的实现类,它的底层使用的哈希表。哈希表作用在HashMap集合的key上。当使用自定义对象作为HashMap集合的key值时,这个自定义对象所属的类需要复写Object类中的hashCode和equals方法。/* * 演示HashMap,使用自定义对象作为Map的key值 */publicclass HashMapDemo publicstaticvoid main(String args) /创建集合对象 HashMap map = new HashMap()。map.put(new Pe

13、rson(张三,23), 上海)。map.put(new Person(张三,23), 上海)。map.put(new Person(李四,33), 北京)。map.put(new Person(王五,39), 东莞)。/获取所有的key组成的set集合 Set set = map.keySet()。/遍历for( Iterator it = set.iterator()。it.hasNext() 。 ) Object key = it.next()。/获取value值 Object value = map.get(key)。 System.out.println(key+.+value)。

14、1.5. TreeMap演示基于红黑树(Red-Black tree)的NavigableMap实现。该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的Comparator进行排序,具体取决于使用的构造方法。TreeMap的底层是二叉树结构。二叉树作用在集合的key上。TreeMap集合可以对保存在其中的元素进行排序。如果将对象保存在TreeMap集合中,key上的这个对象应该具备比较的功能,key上的对象所属的类应该实现Comparable接口。或者是在创建TreeMap的时候,传递一个Comparator对象。/* * 使用自定义对象作为TreeMap的key值 */publicc

15、lass TreeMapDemo publicstaticvoid main(String args) /创建对象 TreeMap map = new TreeMap( )。map.put(new Person(张三,23), 上海)。map.put(new Person(张三,23), 上海)。map.put(new Person(李四,33), 北京)。map.put(new Person(王五,33), 东莞)。/使用entrySet方法进行遍历 Set set = map.entrySet()。for( Iterator it = set.iterator()。 it.hasNext(

16、) 。 ) Object obj = it.next()。 Entry entry = (Entry) obj。 System.out.println(entry.getKey()+.+entry.getValue()。 1.6. Map练习:/* * 需求:统计字符串中每个字符的次数。 * * 分析: * 字符串数据是不确定的数据。其中的字符是什么也不知道, * 但是我们可以只要这个字符出现过,就需要给出一个计数器统计这个字符的次数 * * 遍历字符串,取出每个字符,然后判断它是否已经在统计的计数器中出现过, * 如果出现过,就给这个计数器+1,如果没有出现过,说明这个字符是第一次出现 *

17、就给这个字符的计数器赋值为1. * * 统计字符的次数: * 字符次数 * 使用从字符串中取出的字符作为Map的key值,次数作为Map的value值 * 只要从字符串中取出一个字符,就判断当前这个字符在Map的key中是否存在, * 如果存在,就取出对应的value值+1,再保存到Map中。如果不存在,就说明 * 字符是第一次出现,直接给value值为1,保存到Map中。 * */publicclass MapTest publicstaticvoid main(String args) String s = djfjsdl使用从字符串中取出的字符作为Map的key值,次数作为Map的val

18、ue值。/需要定义一个集合 Map map = new HashMap()。/遍历字符串for(inti = 0 。 i s.length() 。 i+ )/取出字符charch = s.charAt(i)。/判断当前的字符在Map中是否存在if( map.containsKey(ch) )/判断成立说明当前从字符串中取出的字符,已经出现过 Integer value = (Integer) map.get(ch)。/给value+1,再保存到Map中value = value + 1。map.put(ch, value)。 else/判断不成立,说明当前的字符是第一次出现map.put(ch

19、, 1)。 /遍历Map集合,取出每个字符的次数 Set set = map.keySet()。for( Iterator it = set.iterator() 。 it.hasNext() 。 ) Object key = it.next()。 Object value = map.get(key)。 System.out.println(+key+出现的次数是:+value)。 1.7. Hashtable演示此类实现一个哈希表,该哈希表将键映射到相应的值。任何非null对象都可以用作键或值。Hashtable集合它属于Map集合,但是是JDK1.0时期的,底层是哈希表,和HashMap

20、功能一致。它是安全的。/* * 演示古老的双列集合Hashtable */publicclass HashtableDemo publicstaticvoid main(String args) /创建集合对象 Hashtable table = new Hashtable()。table.put(aa,bb)。table.put(ccc,ddd)。table.put(ccc,ddd)。table.put(eee,fff)。/遍历 Enumeration en = table.keys()。while( en.hasMoreElements() ) Object key = en.nextEl

21、ement()。 Object value = table.get(key)。 System.out.println(key+.+value)。 2. 工具类介绍工具类:在JDK中提供大量的类。但是这些类都有对用的功能。可是某些的功能并不能满足实际的所有需求,于是针对这些类有提供的其他的类,处于辅助其他类的这些类被称为工具类。JDK中的工具类一般都以s结尾。并且工具类中的所有方法全部是静态的。2.1. Collections工具类此类完全由在 collection 上进行操作或返回 collection 的静态方法组成。它包含在 collection 上操作的多态算法,即“包装器”,包装器返回

22、由指定 collection 支持的新 collection,以及少数其他内容。Collections:中的方法都是静态的,可以操作集合。反转List集合中的元素。反转比较器。结论:在使用集合的时候,如果发现需要使用集合的某个功能,但是自身没有这时就需要考虑使用Collections中的方法。2.2. Arrays工具类Arrays工具类中提供的大量可以操作数组的方法(折半查找、复制、排序、比较等)。asList:它的功能是将一个数组转成List集合。目的是希望通过使用集合的方法来操作数组。/* * 演示Arrays中的方法,将数组转成集合 */publicclass ArraysDemo p

23、ublicstaticvoid main(String args) /Integer arr = 11,22,33,44,55,66,77,88。int arr = 11,22,33,44,55,66,77,88。/将数组转成集合 List list = Arrays.asList(arr)。 System.out.println(list)。/求最大值 Object max = Collections.max(list)。 System.out.println(max)。 Collections.reverse(list)。 System.out.println(list)。 结论:数组转成集合的时候,只能将引用类型的数组中空间中的每个对象转后存储到集合中。基本类型数组作为一个整体存储在集合中。集合转成数组:直接使用Collection接口中的toArray方法完成。3. 集合综合练习学生的信息经管:可以键盘录入学生信息,并将信息添加到集合中。可以查询每个学生的信息。可以删除学生的信息。可以修改学生的信息。1、 需要给出提示,让用户选择当前的操作类型(增加、删除、修改、查询)学生信息2、 根据输入的类型进行区分,调用不同功能完成实现。参考day17_test 工程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1