其他分享
首页 > 其他分享> > 练习--计算一个字符串每个字符出现的次数和JDK9对集合添加的优化-of方法

练习--计算一个字符串每个字符出现的次数和JDK9对集合添加的优化-of方法

作者:互联网

练习--计算一个字符串每个字符出现的次数

需求∶
  计算一个字符串中每个字符出现次数。

分析:
  1.获取一个字符串对象

  2.创建一个Map集合,键代表字符,值代表次数。

  3.遍历字符串得到每个字符。

  4.判断Map中是否有该键。

  5.如果没有,第一次出现,存储次数为1;如果有,则说明已经出现过,获取到对应的值进行++,再次存储。

  6.打印最终结果

public static void main(String[] args) {
        //1.使用scanner获取用户输入的字符串
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个字符串:");
        String str = sc.next();
        //2.创建Map集合, key是字符串中的字符, vaLue是字符的个数
        HashMap<Character,Integer> map = new HashMap<>();
        //3.遍历字符串,获取每一个字符
        for( char c : str.toCharArray()){
        //4.使用获取到的字符,去Map集合判断key是否存在
            if( map.containsKey(c)){
            Integer value = map.get(c);
            value++;
            map.put( c ,value) ;
            }else{
            // key不存在
             map.put(c,1);
        }
    }
    //遍历Nap集合,输出结果
        for(Character key :map.keySet()){
            Integer value = map.get(key ) ;
            System.out.println( key+"= "+value);
        }
    }

 

JDK9对集合添加的优化-of方法

通常,我们在代码中创建一个集合(例如,List或Set ),并直接用一些元素填充它。实例化集合,几个add方法调用,使得代码重复。

JDK9的新特性︰

List接口, Set接口,Map接口:里边增加了一个静态的方法of,可以给集合一次性添加多个元素

static <E> List<E>of (E... eLements)

使用前提:

  当集合中存储的元素的个数已经确定了,不在改变时使用

注意:
  1.of方法只适用于List接口,set接口,Map接口,不适用于接接口的实现类

  2.of方法的返回值是一个不能改变的集合,集合不能再使用add,put方法添加元素,会抛出异常

  3.Set接口和Map接口在调用of方法的时候,不能有重复的元素,否则会抛出异常

public static void main(String[] args) {
        List<String> list = List.of("a","b","a", "c","d");
        System.out.println( list);//[a, b, a, c, d]
        //list.add( "w"); // UnsupportedoperationException:不支持操作异常
        //Set<String> set = Set.of(" a", "b", "a" , "c " , "d");//ILLegaLArgumentExcepti
        Set<String> set = Set.of( "a", "b", "c", "d" );
        System.out.println(set) ;
        //set.add("w" ) ; // UnsupportedOperationException:不支持操作异常
       // Map<String, Integer> map = Map.of("张三",18,"李四",19,"王五",20,"张三",
        Map<String,Integer> map = Map.of( "张三", 18,"李四",19,"王五",20);
        System.out.println(map);
        map.put("赵四" , 30); //UnsupportedOperationException:不支持操作异常
    }

 

 public static void main(String[] args) {     
     //strSet.add("c");这里编译的时候不会错,但是执行的时候会报错,
     //        因为它是不可变的集合         
     Set<String> strSet = Set.of("a", "b", "c");                  
     System.out.println(strSet);    
            
     Map<String,Integer> strMap = Map.of("a",1, "b",2);           
     System.out.println(strMap);           
     
     List<String> strList = List.of("a","b");           
     System.out.println(strList);       
 } 

 

标签:map,Set,Map,--,System,集合,JDK9,字符串,println
来源: https://www.cnblogs.com/yuzong/p/16452290.html