Map集合集合练习Word文件下载.docx
- 文档编号:16991525
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:18
- 大小:403.12KB
Map集合集合练习Word文件下载.docx
《Map集合集合练习Word文件下载.docx》由会员分享,可在线阅读,更多相关《Map集合集合练习Word文件下载.docx(18页珍藏版)》请在冰豆网上搜索。
总结:
put方法可以将一组对象保存到Map中,返回的当前key对应的原始的value值。
如果key是第一次出现返回的null。
如果不是第一次,就会修改原始的value值。
返回原来的value值
1.2.2.删除方法
根据指定的key,删除key和value这组数据,返回key对应的value值。
/*
*演示Map中的删除方法
*/
publicclassMapDemo2{
publicstaticvoidmain(String[]args){
//创建集合对象
Mapmap=newHashMap()。
map.put("
aa"
"
bb"
)。
cc"
dd"
ee"
fff"
System.out.println(map)。
//删除方法
Objecto=map.remove("
aaa"
System.out.println(o)。
//清空
map.clear()。
}
}
1.2.3.获取方法
根据指定的key获取对应的value值。
如果给出的key在集合中没有,返回null。
*Map集合中的获取方法
publicclassMapDemo3{
//打印
Objecto=map.get("
1.2.4.判断方法
*演示Map集合中的判断方法
publicclassMapDemo4{
//创建集合对象
//判断集合中是否包含指定的key
System.out.println(map.containsKey("
))。
System.out.println(map.containsValue("
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进行遍历,进而就能得到每个的单独的key值,再使用Map中的get(key)方法得到key对应的value值。
2、获取到Map中的key和value这组数据,再封装成一个新的对象。
1.3.2.keySet遍历
*使用Map集合中的keySet方法遍历Map集合
publicclassKetSetDemo{
ff"
//获取到Map中的所有key组成的Set集合
Setset=map.keySet()。
//遍历Set集合
for(Iteratorit=set.iterator()。
it.hasNext()。
){
//获取到Set集合中的某个key值
Objectkey=it.next()。
//调用Map集合中的get方法,得到key对应的value值
Objectvalue=map.get(key)。
System.out.println(key+"
...."
+value)。
1.3.3.entrySet遍历
*使用Map集合中的entrySet方法遍历Map集合
publicclassEntrySetDemo{
//获取到所有key和value组成的Entry对象,保存到Set集合中
Setset=map.entrySet()。
//遍历Set集合
for(Iteratorit=set.iterator()。
it.hasNext()。
){
//已经获取到key和value组成的Entry对象
Objectobj=it.next()。
//由于取出的数据被提升成Object类型,这时需要向下转型
Entryentry=(Entry)obj。
System.out.println(entry.getKey()+"
+entry.getValue())。
就业班中学习JavaWEB中的JSP中的JSTL技术时,其中有foreach的标签,遍历Map集合的时候,使用的entrySet。
1.3.4.values方法
获取到的Map集合中的所有value值组成的Collection集合。
*演示Map集合中的values方法
publicclassValuesDemo{
//获取到Map集合中的所有value值
Collectioncoll=map.values()。
//遍历集合
for(Iteratorit=coll.iterator()。
){
System.out.println(it.next())。
1.4.HashMap演示
基于哈希表的Map接口的实现。
此实现提供所有可选的映射操作,并允许使用null值和null键。
(除了非同步和允许使用null之外,HashMap类与Hashtable大致相同。
)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。
HashMap是Map接口的实现类,它的底层使用的哈希表。
哈希表作用在HashMap集合的key上。
当使用自定义对象作为HashMap集合的key值时,这个自定义对象所属的类需要复写Object类中的hashCode和equals方法。
*演示HashMap,使用自定义对象作为Map的key值
publicclassHashMapDemo{
HashMapmap=newHashMap()。
map.put(newPerson("
张三"
23),"
上海"
李四"
33),"
北京"
王五"
39),"
东莞"
//获取所有的key组成的set集合
//遍历
for(Iteratorit=set.iterator()。
it.hasNext()。
//获取value值
1.5.TreeMap演示
基于红黑树(Red-Blacktree)的NavigableMap实现。
该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的Comparator进行排序,具体取决于使用的构造方法。
TreeMap的底层是二叉树结构。
二叉树作用在集合的key上。
TreeMap集合可以对保存在其中的元素进行排序。
如果将对象保存在TreeMap集合中,key上的这个对象应该具备比较的功能,key上的对象所属的类应该实现Comparable接口。
或者是在创建TreeMap的时候,传递一个Comparator对象。
*使用自定义对象作为TreeMap的key值
publicclassTreeMapDemo{
//创建对象
TreeMapmap=newTreeMap()。
//使用entrySet方法进行遍历
....."
1.6.Map练习:
*需求:
统计字符串中每个字符的次数。
*
*分析:
*字符串数据是不确定的数据。
其中的字符是什么也不知道,
*但是我们可以只要这个字符出现过,就需要给出一个计数器统计这个字符的次数
*遍历字符串,取出每个字符,然后判断它是否已经在统计的计数器中出现过,
*如果出现过,就给这个计数器+1,如果没有出现过,说明这个字符是第一次出现
*就给这个字符的计数器赋值为1.
*统计字符的次数:
*字符次数
*使用从字符串中取出的字符作为Map的key值,次数作为Map的value值
*只要从字符串中取出一个字符,就判断当前这个字符在Map的key中是否存在,
*如果存在,就取出对应的value值+1,再保存到Map中。
如果不存在,就说明
*字符是第一次出现,直接给value值为1,保存到Map中。
publicclassMapTest{
Strings="
djfjsdl使用从字符串中取出的字符作为Map的key值,次数作为Map的value值"
。
//需要定义一个集合
//遍历字符串
for(inti=0。
i<
s.length()。
i++){
//取出字符
charch=s.charAt(i)。
//判断当前的字符在Map中是否存在
if(map.containsKey(ch)){
//判断成立说明当前从字符串中取出的字符,已经出现过
Integervalue=(Integer)map.get(ch)。
//给value+1,再保存到Map中
value=value+1。
map.put(ch,value)。
}else{
//判断不成立,说明当前的字符是第一次出现
map.put(ch,1)。
//遍历Map集合,取出每个字符的次数
System.out.println("
'
"
+key+"
出现的次数是:
1.7.Hashtable演示
此类实现一个哈希表,该哈希表将键映射到相应的值。
任何非null对象都可以用作键或值。
Hashtable集合它属于Map集合,但是是JDK1.0时期的,底层是哈希表,和HashMap功能一致。
它是安全的。
*演示古老的双列集合Hashtable
publicclassHashtableDemo{
Hashtabletable=newHashtable()。
table.put("
"
ccc"
ddd"
eee"
Enumerationen=table.keys()。
while(en.hasMoreElements()){
Objectkey=en.nextElement()。
Objectvalue=table.get(key)。
2.工具类介绍
工具类:
在JDK中提供大量的类。
但是这些类都有对用的功能。
可是某些的功能并不能满足实际的所有需求,于是针对这些类有提供的其他的类,处于辅助其他类的这些类被称为工具类。
JDK中的工具类一般都以s结尾。
并且工具类中的所有方法全部是静态的。
2.1.Collections工具类
此类完全由在collection上进行操作或返回collection的静态方法组成。
它包含在collection上操作的多态算法,即“包装器”,包装器返回由指定collection支持的新collection,以及少数其他内容。
Collections:
中的方法都是静态的,可以操作集合。
反转List集合中的元素。
反转比较器。
结论:
在使用集合的时候,如果发现需要使用集合的某个功能,但是自身没有这时就需要考虑使用Collections中的方法。
2.2.Arrays工具类
Arrays工具类中提供的大量可以操作数组的方法(折半查找、复制、排序、比较等)。
asList:
它的功能是将一个数组转成List集合。
目的是希望通过使用集合的方法来操作数组。
*演示Arrays中的方法,将数组转成集合
publicclassArraysDemo{
//Integer[]arr={11,22,33,44,55,66,77,88}。
int[]arr={11,22,33,44,55,66,77,88}。
//将数组转成集合
Listlist=Arrays.asList(arr)。
System.out.println(list)。
//求最大值
Objectmax=Collections.max(list)。
System.out.println(max)。
Collections.reverse(list)。
数组转成集合的时候,只能将引用类型的数组中空间中的每个对象转后存储到集合中。
基本类型数组作为一个整体存储在集合中。
集合转成数组:
直接使用Collection接口中的toArray方法完成。
3.集合综合练习
学生的信息经管:
可以键盘录入学生信息,并将信息添加到集合中。
可以查询每个学生的信息。
可以删除学生的信息。
可以修改学生的信息。
1、需要给出提示,让用户选择当前的操作类型(增加、删除、修改、查询)学生信息
2、根据输入的类型进行区分,调用不同功能完成实现。
参考day17_test工程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Map 集合 练习