提示信息

Java 中 Map 和 Set 的练习

感性 已关注

在 Java 中,MapSet 是两个非常重要的数据结构,分别用于存储键值对和无重复元素的集合。下面是一些关于它们的练习,帮助你理解和使用这些数据结构。

Map 练习

  1. 创建和初始化 Map

    • 使用 HashMap 创建一个存储学生姓名和学号的 Map。
    • 使用 put 方法向 Map 中添加几个学生记录。
  2. 遍历 Map

    • 使用 entrySet 遍历 Map,打印出每个学生的姓名和学号。
    • 使用 keySetvalues 分别遍历并打印所有学生的姓名和所有学号。
  3. 查找元素

    • 编写一个方法,根据学号查找学生姓名。
    • 编写一个方法,检查某学生是否存在于 Map 中。
  4. 删除元素

    • 从 Map 中删除某个特定学号的记录。
    • 请确保在删除前后打印 Map 的内容以验证操作。
  5. 统计操作

    • 计算 Map 中学生记录的总数。

Set 练习

  1. 创建和初始化 Set

    • 使用 HashSet 创建一个存储整数的集合。
    • 向 Set 中添加一些整数,包括重复值,观察 Set 的行为。
  2. 遍历 Set

    • 使用增强型 for 循环和迭代器分别遍历 Set。
  3. 查找元素

    • 编写一个方法,检查某个整数是否存在于 Set 中。
  4. 删除元素

    • 从 Set 中移除一个特定的整数。
    • 打印 Set,验证删除操作。
  5. 集合运算

    • 创建两个整数 Set,使用各种集合操作(比如并集、交集和差集)。
    • 打印结果,理解 Set 对于这些操作的支持。
  6. 对比两种 Set 实现

    • 对比 HashSetTreeSet 的行为,特别是排序和性能方面的不同。

练习示例代码

  1. import java.util.*;
  2. public class MapAndSetPractice {
  3. public static void main(String[] args) {
  4. // Map 练习
  5. Map<String, Integer> studentMap = new HashMap<>();
  6. studentMap.put("Alice", 101);
  7. studentMap.put("Bob", 102);
  8. studentMap.put("Charlie", 103);
  9. // 遍历Map
  10. for (Map.Entry<String, Integer> entry : studentMap.entrySet()) {
  11. System.out.println("Name: " + entry.getKey() + ", ID: " + entry.getValue());
  12. }
  13. // 查找特定学生
  14. String studentName = findStudentNameById(studentMap, 102);
  15. System.out.println("Student with ID 102: " + studentName);
  16. // Set 练习
  17. Set<Integer> numbers = new HashSet<>(Arrays.asList(1, 2, 3, 4, 5, 5, 6));
  18. // 遍历 Set
  19. for (int number : numbers) {
  20. System.out.println("Set contains: " + number);
  21. }
  22. // 检查特定整数
  23. boolean contains = numbers.contains(4);
  24. System.out.println("Set contains 4: " + contains);
  25. // 集合运算
  26. Set<Integer> anotherSet = new HashSet<>(Arrays.asList(4, 5, 6, 7, 8));
  27. Set<Integer> union = new HashSet<>(numbers);
  28. union.addAll(anotherSet);
  29. System.out.println("Union: " + union);
  30. Set<Integer> intersection = new HashSet<>(numbers);
  31. intersection.retainAll(anotherSet);
  32. System.out.println("Intersection: " + intersection);
  33. Set<Integer> difference = new HashSet<>(numbers);
  34. difference.removeAll(anotherSet);
  35. System.out.println("Difference: " + difference);
  36. }
  37. public static String findStudentNameById(Map<String, Integer> map, int id) {
  38. for (Map.Entry<String, Integer> entry : map.entrySet()) {
  39. if (entry.getValue() == id) {
  40. return entry.getKey();
  41. }
  42. }
  43. return null;
  44. }
  45. }

通过这些练习,你将更好地理解如何使用 Java 中的 MapSet 执行常见操作。探索它们的不同实现方式,比如 HashMapTreeMapHashSetTreeSet,以便选择更适合你的应用场景的实现。

    遇到难题? "AI大模型GPT4.0、GPT" 是你的私人解答专家! 点击按钮去提问......
感性 关注 已关注

最近一次登录:2024-11-20 02:24:43   

暂时还没有签名,请关注我或评论我的文章
×
免费图表工具,画流程图、架构图