太原理工大学java实验报告-实验三

实验项目名称

实验3  集合类的使用

实验目的和要求

  1. 理解集合框架以及相关接口和类;
  2. 理解ArrayList类、掌握ArrayList类的常用方法;
  3. 学会定义ArrayList类对象并实例化,并能获取、修改、删除对象中的数据
  4. 理解泛型类,掌握泛型类对象的定义和使用。

实验内容

  1. 请仔细阅读下面的代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下:
  1. 删除集合的第一个和最后一个元素;
  2. 添加两个字符串:helloeducoder至集合中;
  3. 修改集合的第三个元素,改为:list
  4. 输出集合中所有的元素。

import java.util.ArrayList;

import java.util.Scanner;

public class HelloWorld {

    public static void main(String[] args) {

        //获取输入的数据并添加至集合

        Scanner sc = new Scanner(System.in);

        ArrayList list = new ArrayList<>();

        int length = sc.nextInt();

        for(int i =0 ; i< length ;i++){

            list.add(sc.next());

        }

        /********** Begin *********/

        //删除第一个元素

        //删除最后一个元素

        //添加

        //修改

        //输出list中所有的数据

        /********** End **********/

    }

}

  1. 请仔细阅读下面的代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下:
  1. 创建一个只能存储String类型数据的List集合;
  2. 将程序输入的数据存入List集合中;
  3. 输出集合中所有的数据。

import java.util.*;

public class HelloWorld {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        //输入三次数据

        /********** Begin **********/

  

  

        /********** End **********/

    }

}

主要仪器设备

台式或笔记本电脑

实验记录(写出实验内容1、2中Begin - End区域内的代码和运行结果)(可分栏或加页)

1、第一题代码如下:

import java.util.ArrayList;

import java.util.Scanner;

public class Main {

    @SuppressWarnings("unchecked")

    public static void main(String[] args) {

                Scanner sc = new Scanner(System.in);

                ArrayList list = new ArrayList<>();

                int length = sc.nextInt();

                for(int i =0 ; i< length; i++){

                    list.add(sc.next());

                }

                /********** Begin *********/

                list.remove(0);

                list.remove(length-2);

                list.add("hello");

                list.add("educoder");

                list.set(2,"list");

                for(int i=0;i<list.size();i++){

                    System.out.println(list.get(i));

                }

                /********** End **********/

            }

        }

实验内容一运行结果:

2、第二题代码如下:

import java.util.ArrayList;

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {

                Scanner sc = new Scanner(System.in);

                /********** Begin **********/

                ArrayList<String> list = new ArrayList<String>();

                for(int i=0;i<3;i++){

                    list.add(sc.next());

                }

                for(int i=0;i<list.size();i++){

                    System.out.println("集合的第"+(i+1)+"个数据为:"+list.get(i));

                }

                /********** End **********/

            }

        }

实验内容二运行结果:

遇到的问题和解决方法

1、问题:集合框架、ArrayList类和泛型类等概念较为抽象,理解起来可能有一定难度。

解决方法:寻找易懂的教程、文档或视频资料,并尝试通过实际例子和场景进行理解和演示。逐步进行实验和编码练习,加深对概念的理解。

2、问题:ArrayList类提供了许多方法,掌握常用方法并正确使用可能需要时间和练习。

解决方法:阅读官方文档、教程或参考书籍,理解每个方法的作用和用法。通过编写小型程序或示例来练习每个方法的使用,加深印象。

3、问题:对泛型类的概念和用法理解不深入,可能导致泛型类对象的定义和使用出现困难。

解决方法:深入学习泛型类的概念、优势以及基本语法规则。尝试使用泛型类定义不同类型的对象,并进行操作和调用,实践是理解泛型类的关键。

4、问题:在使用ArrayList或泛型类时,可能会出现错误或异常,难以找到问题所在。

解决方法:通过调试工具(如IDE的调试功能)逐步追踪代码执行过程,排查可能的错误。同时,多查阅相关文档和资源,了解常见错误和解决方案。

心得体会

首先,理解集合框架及相关接口和类是Java编程中至关重要的一部分。集合框架提供了丰富的数据结构和算法,能够更有效地组织和管理数据。学习集合框架的相关接口和类,如List、Set、Map等,让我能够更灵活地处理数据集合。

其次,对于ArrayList类的学习让我深入了解了动态数组的特性。ArrayList类提供了便捷的动态数组实现,能够动态地调整容量并提供各种方法来操作数组元素。掌握了ArrayList类的常用方法,如添加元素、获取元素、删除元素、遍历等,使得我能够更灵活地处理数据。

第三,学会定义ArrayList类对象并实例化,以及获取、修改、删除对象中的数据。通过创建ArrayList对象,我能够存储和操作一系列数据,如整数、字符串等。同时,我学会了如何使用ArrayList的方法来操作对象中的数据,例如使用add()方法添加数据,使用remove()方法删除数据,以及使用get()方法获取数据等。

最后,理解泛型类是提高代码类型安全性和重用性的重要手段。通过学习泛型类,我能够定义和使用具有泛型类型的类,使得代码更加灵活,同时在编译期间提供更好的类型检查。泛型类的使用让我能够编写更通用、更安全的代码,并且减少了类型转换的错误。

  • 20
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值