创建一个Map,保存某个学生的成绩: *在控制台输入该学生成绩,格式:语文:99;数学:98;英语:97

package day05;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;
import java.util.Set;

/**
 *创建一个Map,保存某个学生的成绩:
 *在控制台输入该学生成绩,格式:
 *科目:成绩;科目:成绩;...
 *例如:  
 *语文:99;数学:98;英语:97;物理:96;化学:95
 *然后输出物理的成绩。
 *然后将化学的成绩设置为96
 *然后删除英语这一项。
 *然后遍历该Map分别按照遍历key,Entry,value
 *的形式输出该Map信息。
 * @author Xiloer
 *
 */
public class Test04 {
    public static void main(String[] args) {
        //首先创建Map集合
        Map<String,Integer> m = new HashMap<String, Integer>();
        System.out.println("输出学生成绩:");
        Scanner scan = new Scanner(System.in);
        String str = scan.nextLine();
        /*
         * String[] split(String regex)方法
         * 根据参数regex(regex是一个正则表达式,用来限定分割规则
         * 将字符串分割为若干个子字符串
         */
        String[] arr = str.split(";");
        for(int i = 0;i<arr.length;i++) {
            String[] arr1 = arr[i].split(":");
            String str1 = arr1[0];
            //将字符串转换为基本类型。包装类.parse(String str)方法
            Integer in = Integer.parseInt(arr1[1]);
            m.put(str1, in);
        }
        System.out.println(m.get("物理"));
        m.put("化学", 96);
        m.remove("英语");
        /*
         * 遍历所有key
         * Set<k> keySet();
         * 该方法会将当前map集合所有的key存入到set集合
         * 后将其返回。所以遍历这个set集合就相当于在遍历
         * 所有的key
         */
        Set<String> keySet = m.keySet();
        for(String st: keySet ) {
            System.out.println(st);
        }
        /*
         * 遍历所有的value
         * Collection<V> values()
         * 将当前Map中所有的values存入到一个集合后返回
         */
        Collection<Integer> values = m.values();
        for(Integer i:values) {
            System.out.println(i);
        }
        /*
         * 遍历Map中每一组键值对
         * Map有一个内部类Entry,其每一个实例用于表示
         * Map中的每一组键值对
         * 
         * Set<Entry> entrySet();
         * 该方法会将当前Map中的每一个键值对(若干Entry)
         * 存入到一个Set集合中返回
         */
        Set<Entry<String,Integer>> entrySet = m.entrySet();
        for(Entry<String,Integer> e:entrySet) {
            String key = e.getKey();
            int value = e.getValue();
            System.out.println(key+":"+value);
        }
    }
}

 

posted @ 2021-05-25 21:26  入门人士  阅读(264)  评论(0)    收藏  举报