前言:昨天与大家分享了集合框架之set集合,今天就与大家分享集合框架之Map集合,今天就与大家要分享三个框架了,这三种框架都有各自特点。
首先我们还是跟着思维导图来找到这次分享的一个方向:
一、集合框架Map的特点
1、无序性:和set集合一样,具有无序性的特点。
上图有四个对象,其中不是按顺序输出的。
2、键不可重复,值重复性:
由上图可得:键不重复,要是重复的话就会输出两个a, 可以输出同样的值。
3、key键可以为空。
二、Map集合遍历的方式:
1、通过遍历键来得到值:
Map集合与前两个集合不一样,Map集合是以键值对的形式去存储元素的。
2、通过entry方式遍历Map集合
三、常用实现类HashMap(以统计字符串中的字母出现的次数为例)
现在我为大家解释一下解答这一题的思路:
1、先把字符串变为字符数组
2、加入到map集合中,遍历
3、判断:如果还没有该元素就加一,如果有的话在原基础就在增加一个。
四、泛型讲解:
泛型有两个作用:
1、将运行时的异常转换为编译期的错误(通俗点讲一般的代码在编译时不会显示错误,只有在运行是控制台报错,而定义好泛型之后就会直接在编译时报错,可以一目了然错误并及时改正,可以节省时间。)
2、提高代码的一个健壮性(也就使代码更健康)
下面我将用两张图片来阐述泛型的作用:我新定义一个对象,不是按照对应的泛型来定义。
(只有在运行时报错,给大家看一下错误)
Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
at Map.Demo4.main(Demo4.java:24)
错误的意思是无法将string类型转换为int类型)
接下来我将把泛型定义好:
大家请看我将泛型定义好之后,直接在编译时报错,一目了然。
五、集合框架工具包
1>、Collections
1、排序:
直接调用Collections方法中的sort方法可以直接排序,在其中还要写一个新的比较器的接口。(图中时升序,降序就反过来。)
2、toarray方法:
s.toArray();
2>Arrays:
1、tostring()方法:
如果直接输出str就会显示地址,但是调用arrays.tostring()的方法,就会将改数组直接原封不动打印出来。
2、aslist方法
大家看一下,当我直接调用数组str的方法时,他的方法很少,但是我将该数组转变为集合的话,方法就会很多了,这就是aslist的好处。
3、sort方法:
Integer [] intd = new Integer[] { 1,27,4,32 };
Arrays.sort(intd);
System.out.println(Arrays.toString(intd));
之前我们在学JAVA的时候学到过冒泡排序,当时的代码量很多,还要写几个元素之间的比较代码,但是这里直接调用Arrays中的sort方法进行冒泡排序方便很多。
总结:今天的分享就到这里了,如果有什么漏缺之点请大神多多指教。