MAP集合练习题

使用Map实现世界杯冠军查询及球队夺冠年份检索
package demo;

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

/*利用 Map,完成下面的功能:
 从命令行读入一个字符串,
 表示一个年份,
 输出该年的世界杯冠军是哪支球队。
 如果该年没有举办世界 杯,则输出:没有举办世界杯。
* */
public class Test19 {
    public static void main(String[] args) {
        //创建map集合
        Map<Integer, String> map = new HashMap<>();
        map.put(1930, "乌拉圭");
        map.put(1934, "意大利");
        map.put(1938, "意大利");
        map.put(1950, "乌拉圭");
        map.put(1594, "德国");
        map.put(1958, "巴西");
        map.put(1962, "巴西");
        map.put(1966, "英格兰");
        map.put(1970, "巴西");
        map.put(1974, "德国");
        map.put(1978, "阿根廷");
        map.put(1982, "意大利");
        map.put(1986, "阿根廷");
        map.put(1990, "德国");
        map.put(1994, "巴西");
        map.put(1998, "法国");
        map.put(2002, "巴西");
        map.put(2006, "意大利");

        //用户输入
        Scanner sc = new Scanner(System.in);
        //打印提示语句
        System.out.println("输入你想要查询的年份  (别查了没中国)");
        //确定Scanner类对象变量
        Integer sr = sc.nextInt();

        //使用map类中的确定key是否存在的方法
        if (map.containsKey(sr))
            System.out.println(map.get(sr));
        else System.out.println("世界杯4年一次 你这个假球迷");

        //在上一题目的基础上,增加如下功能: 读入一支球队的名字,输出该球队夺冠的年份列表。
        //确定Scanner类对象数据类型
        String str = sc.next();
        boolean bo = false;
        Set<Integer> set = map.keySet();
        for (Integer integer : set) {
            if (str.equals(map.get(integer))){
                bo = true;
                System.out.println("integer = " + integer);
            }
        }
        if (bo==false) System.out.println(str + "没有得过世界杯");

    }
}


Java集合框架是Java编程中非常重要的部分,它提供了一系列用于管理对象集合的类和接口。以下是一些关于Java集合框架的练习题及其详细解答,涵盖List、Set、Map等核心接口的应用。 ### 习题一:List集合操作 **题目:** 编写一个Java程序,创建一个`ArrayList`,并向其中添加5个字符串元素。然后,实现一个方法,将该列表中的元素反转,并输出反转前和反转后的内容。 **答案:** ```java import java.util.ArrayList; import java.util.List; public class ReverseListExample { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("apple"); list.add("banana"); list.add("cherry"); list.add("date"); list.add("elderberry"); System.out.println("反转前:" + list); reverseList(list); System.out.println("反转后:" + list); } public static <E> void reverseList(List<E> list) { for (int i = 0; i < list.size() / 2; i++) { E temp = list.get(i); list.set(i, list.get(list.size() - 1 - i)); list.set(list.size() - 1 - i, temp); } } } ``` ### 习题二:Set集合去重 **题目:** 使用`HashSet`存储一组整数,并确保集合中没有重复的元素。编写代码验证这一点,并输出最终的集合内容。 **答案:** ```java import java.util.HashSet; import java.util.Set; public class UniqueSetExample { public static void main(String[] args) { Set<Integer> set = new HashSet<>(); set.add(10); set.add(20); set.add(30); set.add(20); // 重复元素,不会被添加 System.out.println("Set集合内容:" + set); } } ``` ### 习题三:Map集合操作 **题目:** 创建一个`HashMap`,存储学生的姓名和对应的分数。要求实现以下功能: 1. 添加三个学生信息; 2. 修改某个学生的分数; 3. 删除一个学生; 4. 遍历并输出所有学生的信息。 **答案:** ```java import java.util.HashMap; import java.util.Map; public class StudentScores { public static void main(String[] args) { Map<String, Integer> studentMap = new HashMap<>(); // 添加学生信息 studentMap.put("Alice", 85); studentMap.put("Bob", 90); studentMap.put("Charlie", 78); // 修改分数 studentMap.put("Alice", 95); // 删除学生 studentMap.remove("Charlie"); // 遍历输出 System.out.println("学生信息:"); for (Map.Entry<String, Integer> entry : studentMap.entrySet()) { System.out.println(entry.getKey() + " - " + entry.getValue()); } } } ``` ### 习题四:List与Set转换 **题目:** 给定一个包含重复元素的`List`,将其转换为一个`Set`以去除重复项,并输出转换前后的集合。 **答案:** ```java import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; public class ListToSetConversion { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("red"); list.add("green"); list.add("blue"); list.add("red"); // 重复元素 Set<String> set = new HashSet<>(list); System.out.println("原始List:" + list); System.out.println("转换后的Set:" + set); } } ``` ### 习题五:使用Iterator遍历集合 **题目:** 使用`Iterator`遍历一个`ArrayList`,并删除其中所有值为"delete"的元素。 **答案:** ```java import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class IteratorExample { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("keep"); list.add("delete"); list.add("retain"); list.add("delete"); Iterator<String> iterator = list.iterator(); while (iterator.hasNext()) { if ("delete".equals(iterator.next())) { iterator.remove(); } } System.out.println("清理后的列表:" + list); } } ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值