ArrayList<E>集合

ArrayList集合

  • ArrayList集合

    可以存储多个同类型数据的数据结构,集合中存的数据是什么类型,那么就写什么类型。
    例如:集合和要存储字符串,那么就写,E只能表示引用数据类型,不能写基本数据类型。
    特点:集合的长度动态可变,数组的长度一旦定于就不能改变。
    补充:如果ArrayList集合中要存储整型数据,E的类型就要写Integer,如果存储浮点数,推荐写Double

  • 构造方法:创建对象

    ArrayList():创建一个默认长度为10的空集合。
    例如:
    ArrayList list=new ArrayList();
    ArrayList array=new ArrayList();

  • 成员方法:该对象具有的功能

    增(添加):
    public boolean add(E e):在集合末尾添加一个元素,中的E是什么类型,该方法中的参数就是什么类型。
    public void add(int index,E e):在集合指定索引处添加一个元素,中的E是什么类型,该方法中的参数就是什么类型

     删(删除):
         public boolean remove(E o):删除指定的元素,返回删除是否成功
         public E remove(int index):删除指定索引处的元素,返回被删除的元素
         
     改(修改):
         public E set(int index,E element):修改指定索引处的元素,返回被修改的元素
         
     查(获取):
         public E get(int index):返回指定索引处的元素
         public int size():返回集合中的元素的个数
         
     遍历集合:
         //快捷键:集合对象.fori+回车
         for (int i = 0; i < array.size(); i++) {
             //获取每一个元素并打印
             String s = array.get(i);
             System.out.println(s);
         }
    

学生管理系统

  1. 定义方法,添加学生信息
    1、在main方法中定义一个ArrayList集合,存储学生对象。
    2、定义一个addStudent方法,添加学生信息;
    两个明确:
    返回值类型:void
    参数列表:(ArrayList list)
    1、键盘分别录入学号、姓名、年龄、地址
    2、创建Student对象
    3、添加到list集合中

  2. 定义方法,查询所有学生信息,直接遍历打印
    两个明确:
    返回值类型:void
    参数列表:(ArrayList list)
    1、打印标题:学号 姓名 年龄 居住地
    2、遍历list集合,获取每一个Student对象
    3、打印Student对象的id,name、age、address信息

  3. 定义方法,根据学号删除学生信息
    两个明确:
    返回值类型:void
    参数列表:(ArrayList list)
    1、通过键盘录入:“请输入你要删除的学生的学号:”
    2、遍历集合,根据学生的学号找到要删除的学生
    3、如果找到了,就调用remove(int index)

  4. 定义方法,根据学号修改学生信息
    两个明确:
    返回值类型:void
    参数列表:(ArrayList list)
    1、键盘录入:“请输入你要修改的学生的学号:”
    2、键盘录入:请输入新的学生姓名、年龄、居住地
    3、创建Student对象(包含学生的学号,新的姓名、新的年龄、新的居住地)
    4、遍历集合,根据学生的学号找到要修改的学生
    5、如果找到了就调用set(int index,Student s);

  5. 程序的缺陷以及优化
    添加功能:
    缺陷:可以添加学号相同的学生
    解决:在添加之前,根据学号判断学生是否存在,如果存在就不添加,不存在就添加。
    删除功能:
    缺陷:如果输入的学号不存在,也提示了删除成功,其实并没有删除。
    解决:在删除之前,判断学生是否存在,如果存在就删,不存在就提示错误
    修改功能:
    缺陷:如果输入的学号不存在,也提示了修改成功,其实并没有修改。
    解决:在修改之前,判断学生是否存在,如果存在就修改,不存在就提示错误

     总结:这三个功能都需要新判断用户是否已经存在。
     需要我们做的:定义一个方法,判断用户是否存在。
         两个明确:
             返回值类型:int类型的索引,根据学生的id查找学生在集合中的索引。如果找到了就返回具体的索引值,没有找到就返回-1。
             参数列表:(ArrayList<Student> list,String id)
     问题:为什么返回索引不返回boolean类型的值?
         因为删除功能和修改功能都需要索引。
     public static int findStudentById(ArrayList<Student> list,String id){
         //遍历list集合
         for (int i = 0; i < list.size(); i++) {
             //获取每一个学生
             Student s = list.get(i);
             //判断学生的学号和给定的id是否相等,如果相等就返回该索引值
             if(s.getId().equals(id)){
                 return i;//集合中有这样的一个学生,返回这个学生在集合中的索引
             }
         }
         //如果不想等就返回-1
         return -1;
     }        
    

程序源码

学生管理系统的完整代码可以去我的码云上面“参观”,网址https://gitee.com/ldy0206/StudentManager.git

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值