1.统计字符串中每个字符出现的次数
以前的计数器思想:
针对于少量数据需要统计。
核心:
需要对被统计的元素,每一个元素需要定义一个对应的计数器。
案例:
统计大写字符,小写字符,数字字符,其他字符的个数?
在本案例中定义了四个计数器。
现在这个利用map集合进行计数:
针对于多个元素需要统计。
我现在根本不知道统计多少个元素的数量。
案例1:
我要在一片文章中,统计,a b c d ...26个英文字母分别出现了多少次?
如果按照以前的思路,我们需要定义26个计数器。太复杂了。
所以得使用map集合进行统计。
案例2:
我要在一句话中,统计,a b c d ...26个英文字母分别出现了多少次?
分析:在一句话中,因为比较短,有的字母会出现,有的字母是不会出现的。
在此时,我也不知道我要统计多少个元素出现的次数?
所以此时得用map集合进行统计。
2.map集合的统计思想。
键:需要统计的元素
值:键的这个元素现在出现了多少次
存储过程:
1.先判断当前集合是否存在这个元素
2.如果不存在,标签当前元素第一次出现
hm.put(元素,1);
3.如果已存在,要先把原来出现的次数拿出来
4.次数++
5.再次put进行。
就会把之前的那个次数给覆盖了。
3.工具类:
Arrays 作用:帮助我们操作数组的。
特点:构造方法私有化,不让外界创建对象。
方法都是静态的,直接用类名点调用。
Collections 作用:帮助我们操作集合的。
//重点掌握
sort(List list) 对集合元素排序
注意点:参数一个List。
所以表示:只能传递List接口下面的集合。
Set,Map不能传。
//为什么Set也不能传,因为Set集合里面所有的元素所在的位置是通过哈希算法计算出来的。
//如果Set集合可以传递,那么务必要更加了Set集合中元素所在前后顺序,那么此时就跟哈希算法进行冲突。
void shuffle(List list) 对集合元素随机置换
注意点:参数是List
void reverse() 对集合元素反转
复习:
当方法的参数是一个类名时候
可以传递这个类的对象
还可以传递这个类所有的子类对象
当方法的参数是一个抽象类时
只能传递这个类所有的子类对象
当方法的参数是一个接口时
只能传递这个接口所有的实现类对象
|
|