• java基础——Map集合


    Map以键值对的形式存储数据,其中Map.entry,是Map的内部类,它用来描述Map中的键值对。Map是一个接口,HashMap是他的一个实现类

    Map中有几个重要的方法:

    get(Object key);//获取给key的值

    put(Object key,Object value);//该方法会将原先key所对应的键值对覆盖掉,即可以使用该方法来修改Map中的值

    containsKey(Object key);//是否包含某个元素。通过配合get和put方法,来实现匹配并修改Map中的元素

    Collection容器中包含Set和List接口,Set中又包含HashSet,List中包含LinkedList和ArrayList;单独的Map接口中只有HashMap。

           java.util 中的集合类包含 Java 中某些最常用的类。最常用的集合类是 List 和 Map。 List的具体实现包括 ArrayList和 Vector,它们是可变大小的列表,比较适合构建、存储和操作任何类型对象的元素列表。 List适用于按数值索引访问元素的情形,其中的数据有顺序且可以重复(有顺序即提供get(i)的索引方法)。而Set中数据无顺序且不可以重复。

    重点:Map遍历

      迭代Map中的元素不存在直接的方法。如果要迭代Map中的元素,必须首先获得Map 的“视图”。

    返回视图的Map方法。通过这些方法可以遍历Map元素,也可以删除Map中的元素。

    (1)entrySet() :返回所有键值对

    返回 Map中所包含映射的 Set视图。 Set 中的每个元素都是一个 Map.Entry对象,可以使用 getKey()和 getValue()方法(还有一个 setValue()方法)访问后者的键元素和值元素

    (2)keySet() :返回所有键

    返回 Map中所包含键的 Set 视图。删除 Set中的元素还将删除 Map中相应的映射(键和值)

    (3)values() :返回所有值

    返回 map中所包含值的 Collection视图。删除 Collection中的元素还将删除 Map中相应的映射(键和值)

    用一个华为上机题作为例子,就明白了

    题目是:手动输入一个字符串,仅限小写字母,统计并输出每个字符在字符串中出现的次数,并输出。提示(可以用Map)

    /**
     * 手动输入一个字符串,仅限小写字母,统计并输出每个字符在字符串中出现的次数,并输出。提示(可以用Map)
     * 实例:
     * 输入:aaabbbccc
     * 输出:
     * a 3
     * b 3
     * c 3
     * Created by fanyukai on 201838 0008.
     */
    public class MapJava {
        public static void main(String[] args) {
            Scanner scan = new Scanner(System.in);
            System.out.println("请输入字符串");
            String str = scan.next();
            Map<Character,Integer> map=countChar(str);
    
            //这里我采用增强for循环来遍历Map集合
            for (Map.Entry<Character,Integer> entry : map.entrySet()){
                System.out.println(entry.getKey()+":"+entry.getValue());
            }
        }
    
        private static Map<Character,Integer> countChar(String str) {
            int i=0;
            Map<Character,Integer> map = new HashMap<Character,Integer>();
            //这里利用了HashMap集合的特性,put方法放入键值对时,若key值相同,那么原先key对应的值将会被覆盖
            while (i < str.length()){
                if(!map.containsKey(str.charAt(i))){
                    map.put(str.charAt(i),1);
                }else{
                    map.put(str.charAt(i),map.get(str.charAt(i))+1);
                }
                i++;
            }
            return map;
        }
    }

    结果截图:

     这道问题主要考的是:Map集合的常用方法(put,get,containsKey),Map集合如何遍历(必须要获得视图entrySet,并且定义对象Map.Entry)

  • 相关阅读:
    PC逆向之代码还原技术,第六讲汇编中除法代码还原以及原理第一讲,除数是2的幂
    PC逆向之代码还原技术,第五讲汇编中乘法的代码还原
    PC逆向之代码还原技术,第四讲汇编中减法的代码还原
    【Android】20.2 视频播放
    【Android】20.1 音频播放
    【Android】20.0 第20章 音频、视频、拍照、语音合成
    【Android】常见问题解答
    【Android】19.3 ContentProvider及安卓进一步封装后的相关类
    【Android】19.2 ShareActionProvider类—帮你把信息分享出去
    【Android】19.1 SharedPreferences类
  • 原文地址:https://www.cnblogs.com/FanJava/p/8529745.html
Copyright © 2020-2023  润新知