集合练习题

public static void main6(String[] args) {
        HashMap<String, String> hashMap = new HashMap<>();

        hashMap.put("博文", "刘亦菲");
        hashMap.put("欣凯", "苍老师");
        hashMap.put("毛林", null);

        Set<String> manNameSet = hashMap.keySet();

        for (String manName : manNameSet) {
            String girlName = hashMap.get(manName);

            if (girlName.startsWith("苍")) {
                System.out.println("这个男生的名字:" + manName);
            }
        }

//        运行会报错 ->  报什么错误?  -> 什么原因导致的报错.
//   String girlName = hashMap.get(manName);  如果代码运行到毛林, value会是null,
    //   null不能点方法。 girlName.startsWith("苍")所以这行代码会报空指针异常  

    }
/**
     * HashMap的数据的遍历 2种方式
     * 1. 根据keyset遍历 远远多于第二种遍历方式
     * 2. 根据entrySet遍历
     * @param args
     */
    public static void main5(String[] args) {
        HashMap<String, String> hashMap = new HashMap<>();

        hashMap.put("博文", "刘亦菲");
        hashMap.put("欣凯", "苍老师");
        hashMap.put("毛林", null);

//        1. 根据键的集合遍历整个HashMap (比较常用, 写法简单)

//        keySet方法 返回此map中包含所有的键的Set集合
//        Set<String> manNameSet = hashMap.keySet();

//        System.out.println(manNameSet);

//        for (String manName : manNameSet) {
//            String girlFriend = hashMap.get(manName);
//            System.out.println("男生的名字:" + manName + " 女朋友的名字:" + girlFriend);
//        }

//        2. 根据内部的键值对Entry 集合进行遍历
//        Set<>  set里面放的是Entry对象   Entry<String, String>
//        entry对象中包含了两个属性, 一个是键, 一个是值
        Set<Map.Entry<String, String>> entries = hashMap.entrySet();

        for (Map.Entry<String, String> entry : entries) {
            String manName = entry.getKey();
            String manGirlFriendName = entry.getValue();

            System.out.println("男生的名字:" + manName + " 女朋友的名字:" + manGirlFriendName);
        }
    }
public class HashMap02 {
    public static void main(String[] args) {
//        (1)从键盘输入本组学员的姓名和他的手机号码,存放到HashMap<K,V>中,
//        泛型指定为<String,String>,姓名为key,手机号码为value,并且遍历显示
//            (2)再从键盘输入姓名,查询他的手机号码
        HashMap<String, String> hashMap = new HashMap<>();
        Scanner scanner = new Scanner(System.in);
        System.out.println("你打算输入几个学生");
        int num = scanner.nextInt();
        for (int i = 0; i < num; i++) {
            System.out.println("请输入姓名");
            String key = scanner.next();
            System.out.println("请输入手机号");
            String value = scanner.next();
            hashMap.put(key,value);
        }
        Set<Map.Entry<String, String>> entries = hashMap.entrySet();
        for (Map.Entry<String, String> entry : entries) {
            System.out.println("姓名" + entry.getKey() + "\t手机号" + entry.getValue());
        }
        System.out.println("请输入名字可以查询到手机号");
        String name = scanner.next();
        System.out.println("你要查询的" + name + "手机号是" + hashMap.get(name));
    }
}

 

public class HashMap03 {
    public static void main(String[] args) {
//        (1)创建HashMap对象,泛型为<String, ArrayList<String>>,
//(2)存储咱们班每组学员信息,组长姓名为key,组员们的姓名(包括组长自己)为value
//(2)遍历显示每一个小组信息
//    3)从键盘输入一个学员姓名,查找这个学员是否咱们班
        HashMap<String, ArrayList<String>> hashMap = new HashMap<>();
        ArrayList<String> list = new ArrayList<>();
        list.add("张三");
        list.add("李四");
        list.add("王二");
        ArrayList<String> arrayList = new ArrayList<>();
        arrayList.add("孙悟空");
        arrayList.add("八戒");
        arrayList.add("唐僧");
        hashMap.put(list.get(0),list);
        hashMap.put(arrayList.get(0),arrayList);

        Set<Map.Entry<String, ArrayList<String>>> entries = hashMap.entrySet();
        for (Map.Entry<String, ArrayList<String>> entry : entries) {
            System.out.println("组长姓名:" + entry.getKey() + "\t" + "组员姓名:" + entry.getValue());
        }
        System.out.println("请输入要查找的学员姓名");
        Scanner scanner = new Scanner(System.in);
        String name = scanner.next();
        Collection<ArrayList<String>> values = hashMap.values();
        boolean loop = false;
        for (ArrayList<String> value : values) {
            if (value.contains(name)){
                loop = true;
                break;
            }
        }
        System.out.println("查询的结果" + loop);
    }
}

 

public class HashMap04 {
    public static void main(String[] args) {
        HashMap<String, String> hashMap = new HashMap<>();
        hashMap.put("孙悟空","金箍棒");
        hashMap.put("八戒","九尺金牌");
        //找出金箍棒的拥有者
        Set<Map.Entry<String, String>> entries = hashMap.entrySet();
        for (Map.Entry<String, String> entry : entries) {
            String value = entry.getValue();
            if (value.startsWith("金")){
                System.out.println(entry.getKey());
            }
        }
    }
}

 

posted @ 2022-12-29 15:35  阿文程序猿  阅读(73)  评论(0)    收藏  举报