Map集合的使用练习

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()        对集合元素反转
                         

        复习:
                当方法的参数是一个类名时候
                        可以传递这个类的对象
                        还可以传递这个类所有的子类对象

                当方法的参数是一个抽象类时
                        只能传递这个类所有的子类对象

                当方法的参数是一个接口时
                        只能传递这个接口所有的实现类对象
发布了667 篇原创文章 · 获赞 6 · 访问量 9041

猜你喜欢

转载自blog.csdn.net/heima201907/article/details/104381988