Bootstrap

Java基础编程500题——HashMap、LinkedHashMap和TreeMap

 💥 该系列属于【Java基础编程500题】专栏,如您需查看Java基础的其他相关题目,请您点击左边的连接

目录

1. 创建一个HashMap,存储5个学生的姓名和年龄,然后查询并输出指定学生的年龄。

2. 创建一个LinkedHashMap,存储5个水果名称和价格,然后按照插入顺序输出所有水果名称。

3. 创建一个TreeMap,存储5个城市的名称和人口数量,然后按照城市名称的自然顺序输出所有城市名称。

4.  给定一个字符串,使用HashMap统计每个字符出现的次数,并输出结果。

5. 创建一个TreeMap,存储5个学生的姓名和成绩,成绩作为键,姓名作为值。然后按照成绩从高到低输出所有学生的姓名。

6. 创建一个HashMap,存储一些学生的姓名和成绩,然后删除成绩低于60分的学生记录,并输出剩余的学生信息。

7.  给定一个HashMap和一个值,判断该值是否在HashMap中存在。

8. 给定一个存储整数的HashMap,找出其中的最大值和最小值,并输出。

9. 给定两个HashMap,合并它们,如果键相同,则将值相加。

10. 编写一个Java程序,实现HashMap的深拷贝。

11. 编写一个Java程序,将HashMap中所有值为特定值的条目替换为新值。

12. 编写一个Java程序,将HashMap中的键和值进行反转,即原来的值成为键,原来的键成为值。

13. 编写一个Java程序,移除HashMap中所有偶数值。

14. 编写一个Java程序,使用HashMap实现一个简单的投票系统,记录候选人的得票数,并输出得票最多的候选人。


 ✨✨  返回题目目录 ✨ ✨ 

Java基础编程500题


1. 创建一个HashMap,存储5个学生的姓名和年龄,然后查询并输出指定学生的年龄。

import java.util.HashMap;

public class Main {
    public static void main(String[] args) {
        HashMap<String, Integer> students = new HashMap<>();
        students.put("张三", 20);
        students.put("李四", 21);
        students.put("王五", 22);
        students.put("赵六", 23);
        students.put("钱七", 24);

        String name = "王五";
        if (students.containsKey(name)) {
            System.out.println(name + "的年龄是:" + students.get(name));
        } else {
            System.out.println("没有找到该学生信息");
        }
    }
}

2. 创建一个LinkedHashMap,存储5个水果名称和价格,然后按照插入顺序输出所有水果名称。

import java.util.LinkedHashMap;

public class Main {
    public static void main(String[] args) {
        LinkedHashMap<String, Double> fruits = new LinkedHashMap<>();
        fruits.put("苹果", 5.5);
        fruits.put("香蕉", 3.2);
        fruits.put("橙子", 4.0);
        fruits.put("梨", 2.8);
        fruits.put("葡萄", 6.0);

        for (String fruit : fruits.keySet()) {
            System.out.println(fruit);
        }
    }
}

3. 创建一个TreeMap,存储5个城市的名称和人口数量,然后按照城市名称的自然顺序输出所有城市名称。

import java.util.TreeMap;

public class Main {
    public static void main(String[] args) {
        TreeMap<String, Integer> cities = new TreeMap<>();
        cities.put("Beijing", 21540000);
        cities.put("Shanghai", 24240000);
        cities.put("Guangzhou", 15000000);
        cities.put("Shenzhen", 13000000);
        cities.put("Chengdu", 16500000);

        for (String city : cities.keySet()) {
            System.out.println(city);
        }
    }
}

4.  给定一个字符串,使用HashMap统计每个字符出现的次数,并输出结果。

import java.util.HashMap;

public class Main {
    public static void main(String[] args) {
        String str = "abracadabra";
        HashMap<Character, Integer> charCount = new HashMap<>();

        for (char ch : str.toCharArray()) {
            charCount.put(ch, charCount.getOrDefault(ch, 0) + 1);
        }

        for (Character ch : charCount.keySet()) {
            System.out.println(ch + "出现了" + charCount.get(ch) + "次");
        }
    }
}

5. 创建一个TreeMap,存储5个学生的姓名和成绩,成绩作为键,姓名作为值。然后按照成绩从高到低输出所有学生的姓名。

import java.util.TreeMap;

public class Main {
    public static void main(String[] args) {
        TreeMap<Double, String> scores = new TreeMap<>((a, b) -> b.compareTo(a)); // 降序排列
        scores.put(90.0, "张三");
        scores.put(85.5, "李四");
        scores.put(92.0, "王五");
        scores.put(88.0, "赵六");
        scores.put(78.5, "钱七");

        for (String name : scores.values()) {
            System.out.println(name);
        }
    }
}

6. 创建一个HashMap,存储一些学生的姓名和成绩,然后删除成绩低于60分的学生记录,并输出剩余的学生信息。

import java.util.HashMap;

public class Main {
    public static void main(String[] args) {
        HashMap<String, Integer> students = new HashMap<>();
        students.put("张三", 58);
        students.put("李四", 90);
        students.put("王五", 70);
        students.put("赵六", 55);

        // 删除成绩低于60分的学生
        students.entrySet().removeIf(entry -> entry.getValue() < 60);

        for (Map.Entry<String, Integer> entry : students.entrySet()) {
            System.out.println(entry.getKey() + "的成绩是:" + entry.getValue());
        }
    }
}

7.  给定一个HashMap和一个值,判断该值是否在HashMap中存在。

import java.util.HashMap;

public class Main {
    public static void main(String[] args) {
        HashMap<String, String> map = new HashMap<>();
        map.put("A", "Apple");
        map.put("B", "Banana");
        map.put("C", "Cherry");

        String valueToFind = "Banana";
        if (map.containsValue(valueToFind)) {
            System.out.println("HashMap中存在值:" + valueToFind);
        } else {
            System.out.println("HashMap中不存在值:" + valueToFind);
        }
    }
}

8. 给定一个存储整数的HashMap,找出其中的最大值和最小值,并输出。

import java.util.HashMap;

public class Main {
    public static void main(String[] args) {
        HashMap<String, Integer> numbers = new HashMap<>();
        numbers.put("one", 1);
        numbers.put("two", 2);
        numbers.put("three", 3);
        numbers.put("four", 4);
        numbers.put("five", 5);

        int max = Integer.MIN_VALUE;
        int min = Integer.MAX_VALUE;

        for (int value : numbers.values()) {
            if (value > max) {
                max = value;
            }
            if (value < min) {
                min = value;
            }
        }

        System.out.println("最大值是:" + max);
        System.out.println("最小值是:" + min);
    }
}

9. 给定两个HashMap,合并它们,如果键相同,则将值相加。

import java.util.HashMap;

public class Main {
    public static void main(String[] args) {
        HashMap<String, Integer> map1 = new HashMap<>();
        map1.put("A", 1);
        map1.put("B", 2);
        map1.put("C", 3);

        HashMap<String, Integer> map2 = new HashMap<>();
        map2.put("B", 3);
        map2.put("C", 4);
        map2.put("D", 5);

        HashMap<String, Integer> mergedMap = new HashMap<>(map1);
        map2.forEach((key, value) -> mergedMap.merge(key, value, Integer::sum));

        System.out.println("合并后的HashMap:" + mergedMap);
    }
}

10. 编写一个Java程序,实现HashMap的深拷贝。

import java.util.HashMap;

public class Main {
    public static void main(String[] args) {
        HashMap<Integer, String> originalMap = new HashMap<>();
        originalMap.put(1, "One");
        originalMap.put(2, "Two");
        originalMap.put(3, "Three");

        HashMap<Integer, String> copiedMap = new HashMap<>(originalMap);

        System.out.println("原始HashMap:" + originalMap);
        System.out.println("复制后的HashMap:" + copiedMap);
    }
}

11. 编写一个Java程序,将HashMap中所有值为特定值的条目替换为新值。

import java.util.HashMap;

public class Main {
    public static void main(String[] args) {
        HashMap<String, String> map = new HashMap<>();
        map.put("A", "Apple");
        map.put("B", "Banana");
        map.put("C", "Cherry");

        String oldValue = "Banana";
        String newValue = "Berry";

        map.replaceAll((key, value) -> value.equals(oldValue) ? newValue : value);

        System.out.println("替换特定值后的HashMap:" + map);
    }
}

12. 编写一个Java程序,将HashMap中的键和值进行反转,即原来的值成为键,原来的键成为值。

import java.util.HashMap;

public class Main {
    public static void main(String[] args) {
        HashMap<String, Integer> originalMap = new HashMap<>();
        originalMap.put("One", 1);
        originalMap.put("Two", 2);
        originalMap.put("Three", 3);

        HashMap<Integer, String> reversedMap = new HashMap<>();
        originalMap.forEach((key, value) -> reversedMap.put(value, key));

        System.out.println("反转后的HashMap:" + reversedMap);
    }
}

13. 编写一个Java程序,移除HashMap中所有偶数值。

import java.util.HashMap;

public class Main {
    public static void main(String[] args) {
        HashMap<String, Integer> numbers = new HashMap<>();
        numbers.put("A", 1);
        numbers.put("B", 2);
        numbers.put("C", 3);
        numbers.put("D", 4);

        numbers.values().removeIf(v -> v % 2 == 0);

        System.out.println("移除偶数值后的HashMap:" + numbers);
    }
}

14. 编写一个Java程序,使用HashMap实现一个简单的投票系统,记录候选人的得票数,并输出得票最多的候选人。

import java.util.HashMap;
import java.util.Map;

public class Main {
    public static void main(String[] args) {
        HashMap<String, Integer> votes = new HashMap<>();
        votes.put("候选人1", 0);
        votes.put("候选人2", 0);
        votes.put("候选人3", 0);

        // 模拟投票过程
        vote("候选人1", votes);
        vote("候选人2", votes);
        vote("候选人1", votes);
        vote("候选人3", votes);
        vote("候选人2", votes);
        vote("候选人3", votes);

        // 找出得票最多的候选人
        String winner = "";
        int maxVotes = 0;
        for (Map.Entry<String, Integer> entry : votes.entrySet()) {
            if (entry.getValue() > maxVotes) {
                maxVotes = entry.getValue();
                winner = entry.getKey();
            }
        }

        System.out.println("得票最多的候选人:" + winner + ",得票数:" + maxVotes);
    }

    private static void vote(String candidate, HashMap<String, Integer> votes) {
        votes.put(candidate, votes.get(candidate) + 1);
    }
}

;