编程自学指南:java程序设计开发,Java 集合框架(ArrayList/HashMap),集合框架概述

编程自学指南:java程序设计开发,Java 集合框架(ArrayList/HashMap)

一、课程目标

  1. 理解 Java 集合框架的概念和作用。
  2. 掌握 ArrayList 的基本使用,包括创建、添加、删除、访问元素等操作。
  3. 掌握 HashMap 的基本使用,包括创建、添加、删除、查找键值对等操作。
  4. 能够运用 ArrayList 和 HashMap 解决简单的实际问题。

二、集合框架概述(10 分钟)

1. 什么是集合框架

        集合框架是 Java 提供的一组用于存储和操作数据的类和接口,它可以帮助我们更方便地管理和处理数据。

2. 集合框架的优点

  • 提高代码的复用性和可维护性。
  • 提供了各种数据结构和算法,方便我们进行数据操作。
  • 支持泛型,提高了类型安全性。

3. 集合框架的分类

        Java 集合框架主要分为两大体系:

  • Collection 体系:用于存储单个元素,有三个子接口:ListSetQueue
  • Map 体系:用于存储键值对。

三、ArrayList

1. 什么是 ArrayList

        ArrayList 是 List 接口的一个实现类,它使用动态数组来存储元素。可以根据需要自动调整数组的大小。

2. 常用方法

方法名描述
add(E e)将指定的元素添加到列表的末尾
add(int index, E element)在指定位置插入指定元素
get(int index)返回列表中指定位置的元素
remove(int index)移除列表中指定位置的元素
size()返回列表中的元素个数

3. 示例代码

import java.util.ArrayList;

public class ArrayListExample {
    public static void main(String[] args) {
        // 创建一个 ArrayList 对象
        ArrayList<String> fruits = new ArrayList<>();

        // 添加元素
        fruits.add("苹果");
        fruits.add("香蕉");
        fruits.add("橙子");

        // 访问元素
        System.out.println("第一个水果: " + fruits.get(0));

        // 遍历元素
        for (String fruit : fruits) {
            System.out.println(fruit);
        }

        // 删除元素
        fruits.remove(1);
        System.out.println("删除香蕉后剩余的水果:");
        for (String fruit : fruits) {
            System.out.println(fruit);
        }

        // 获取列表大小
        System.out.println("当前列表的大小: " + fruits.size());
    }
}

4. 案例:学生成绩管理

import java.util.ArrayList;
import java.util.Scanner;

public class StudentGradeManagement {
    public static void main(String[] args) {
        ArrayList<Integer> grades = new ArrayList<>();
        Scanner scanner = new Scanner(System.in);

        // 输入学生成绩
        System.out.println("请输入学生成绩(输入 -1 结束):");
        int grade;
        while (true) {
            grade = scanner.nextInt();
            if (grade == -1) {
                break;
            }
            grades.add(grade);
        }

        // 计算平均成绩
        int sum = 0;
        for (int g : grades) {
            sum += g;
        }
        double average = (double) sum / grades.size();
        System.out.println("学生的平均成绩是: " + average);
    }
}

5. 注意事项

  • ArrayList 可以存储重复元素。
  • 元素的插入和删除操作可能会导致性能下降,尤其是在列表中间进行操作时。

四、HashMap(30 分钟)

1. 什么是 HashMap

       HashMap 是 Map 接口的一个实现类,它使用哈希表来存储键值对。每个键都是唯一的,通过键可以快速查找对应的值。

2. 常用方法

方法名描述
put(K key, V value)将指定的键值对插入到映射中
get(Object key)返回指定键所映射的值,如果键不存在则返回 null
remove(Object key)移除指定键对应的键值对
containsKey(Object key)判断映射中是否包含指定的键
size()返回映射中的键值对数量

3. 示例代码

import java.util.HashMap;

public class HashMapExample {
    public static void main(String[] args) {
        // 创建一个 HashMap 对象
        HashMap<String, Integer> scores = new HashMap<>();

        // 添加键值对
        scores.put("张三", 85);
        scores.put("李四", 90);
        scores.put("王五", 78);

        // 访问元素
        System.out.println("张三的成绩: " + scores.get("张三"));

        // 遍历键值对
        for (String name : scores.keySet()) {
            int score = scores.get(name);
            System.out.println(name + " 的成绩是: " + score);
        }

        // 删除元素
        scores.remove("李四");
        System.out.println("删除李四的成绩后:");
        for (String name : scores.keySet()) {
            int score = scores.get(name);
            System.out.println(name + " 的成绩是: " + score);
        }

        // 判断是否包含某个键
        System.out.println("是否包含王五的成绩: " + scores.containsKey("王五"));

        // 获取映射的大小
        System.out.println("当前映射的大小: " + scores.size());
    }
}

4. 案例:员工信息管理

import java.util.HashMap;
import java.util.Scanner;

public class EmployeeManagement {
    public static void main(String[] args) {
        HashMap<String, String> employees = new HashMap<>();
        Scanner scanner = new Scanner(System.in);

        // 输入员工信息
        System.out.println("请输入员工姓名和部门(格式:姓名 部门,输入 end 结束):");
        while (true) {
            String input = scanner.nextLine();
            if (input.equals("end")) {
                break;
            }
            String[] parts = input.split(" ");
            String name = parts[0];
            String department = parts[1];
            employees.put(name, department);
        }

        // 查询员工信息
        System.out.println("请输入要查询的员工姓名:");
        String queryName = scanner.nextLine();
        if (employees.containsKey(queryName)) {
            System.out.println(queryName + " 所在部门是: " + employees.get(queryName));
        } else {
            System.out.println("未找到该员工信息。");
        }
    }
}

5. 注意事项

  • HashMap 不保证键值对的顺序。
  • 键不能为 null,但值可以为 null

五、ArrayList 与 HashMap 对比(10 分钟)

对比项ArrayListHashMap
存储方式存储单个元素存储键值对
元素访问通过索引访问通过键访问
元素顺序有序无序
元素唯一性可重复键唯一

六、课堂练习

1. ArrayList 练习

       创建一个 ArrayList 来存储整数,添加 1 - 10 的整数,然后删除其中的偶数,最后输出剩余的元素。

2. HashMap 练习

       创建一个 HashMap 来存储水果的名称和价格,添加一些水果信息,然后根据用户输入的水果名称查询其价格。

七、课程总结

  1. 回顾 Java 集合框架的概念和分类。
  2. 总结 ArrayList 和 HashMap 的基本使用方法和注意事项。
  3. 强调 ArrayList 和 HashMap 在不同场景下的应用。

八、课后作业

  1. 使用 ArrayList 实现一个简单的图书管理系统,包括添加图书、删除图书、显示所有图书信息的功能。
  2. 使用 HashMap 实现一个简单的通讯录,包括添加联系人、删除联系人、查找联系人信息的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zl515035644

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值