集合的基础

集合的特点:

                1.提供一种存储空间可变的存储模型,存储的数据容量可以发生改变。

         1.ArrayList构造方法和添加方法:

  1.    ArrayList list=new ArrayList():创建一个空的集合对象,初始容量为10.
  2.  list.add(E e):只能是引用数据类型,但是底层会将基本数据类型转成引用数据类型。
  3.   直接打印集合:集合对象底层也有优化,直接打印不会打印出地址值,而是把数据值打印出来。
  4. list.add(int index,E element):指定位置存储数据。     

         2.ArrayList是泛型:ArrayList<E>

                在出现E的地方我们使用引用数据类型(也可以使用基本数据类型对应的包装类)替换就可以指定集合只存储这个数据类型的值。

         3.ArrayList集合常用方法

  1.   boolean remove(Object o):删除指定的元素
  2.   E remove(int index):删除指定索引处的元素
  3.   E set(int index,E element):修改指定索引处的元素
  4.   E get(int index):返回指定索引处的元素
  5.   int size():返回集合中元素的个数

         4.基于ArrayList的简单学生管理系统(控制台)

package students;

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

public class StuMgr {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        ArrayList<Student> list=new ArrayList<>();

//        loop:
        while (true){
            //主界面
            System.out.println("=========================欢迎使用本学生管理系统=========================");
            System.out.println("请选择以下功能:1.添加学生\t2.删除学生\t3.修改学生\t4.查询学生\t5.退出系统");

            String choice=sc.next();
            switch (choice){
                case "1":
                    System.out.println("***已选择添加学生***");
                    addStudent(list);
                    break;
                case "2":
                    System.out.println("***已选择删除学生***");
                    deleteStudent(list);
                    break;
                case "3":
                    System.out.println("***已选择修改学生***");
                    updateStudent(list);
                    break;
                case "4":
                    System.out.println("***已选择查询学生***");
                    queryStudents(list);
                    break;
                case "5":
                    System.out.println("***已选择退出系统***");
//                    break loop;
                    return;
                default:
                    System.out.println("***请按要求点击***");
                    break ;
            }
        }
    }

    //根据学号删除
    private static void deleteStudent(ArrayList<Student> stus) {
        System.out.println("***请输入要删除的学号***");
        Scanner sc=new Scanner(System.in);
        String id=sc.next();
        int index=getIndex(stus,id);
        if (index==-1){
            System.out.println("***该学号不存在***");
        }else {
            stus.remove(index);
            System.out.println("***删除成功***");
        }
    }

    //添加学生的功能:
    public static void addStudent(ArrayList<Student> stus){
        Scanner sc=new Scanner(System.in);
        System.out.println("***请输入学号***");
        String id;
        while (true){
             id=sc.next();
            int index=getIndex(stus,id);
            if (index==-1){
                break;
            }
            System.out.println("***重复了,请重新输入学号***");
        }
        System.out.println("***请输入姓名***");
        String name=sc.next();
        System.out.println("***请输入年龄***");
        int age= sc.nextInt();
        System.out.println("***请输入生日***");
        String birthday=sc.next();
        Student student=new Student(id,name,age,birthday);

        stus.add(student);
        System.out.println("***添加成功***");
    }

    //查看所有学生
    public static void queryStudents(ArrayList<Student> stus){
        if (stus.size()==0){
            System.out.println("***目前还没有任何学生***");
            return;
        }

        //表头
        System.out.println("学号\t\t姓名\t年龄\t生日");
        for (int i = 0; i < stus.size(); i++) {
            Student stu=stus.get(i);
            String id=stu.getId();
            String name=stu.getName();
            int age=stu.getAge();
            String birthday=stu.getBirthday();
            System.out.println(id+"\t\t"+name+"\t "+age+" \t"+birthday);
        }
    }

    //查找指定学号的索引。
    public static int getIndex(ArrayList<Student> stus,String id){
        for (int i = 0; i < stus.size(); i++) {
            Student student=stus.get(i);
            String stuId=student.getId();
            if (stuId.equals(id)){
                return i;
            }
        }
        return -1;
    }

    //修改学生信息
    public static void updateStudent(ArrayList<Student> stus){
        System.out.println("***请输入要修改的学生学号***");
        Scanner sc=new Scanner(System.in);
        String id=sc.next();
        int index=getIndex(stus,id);
        if (index==-1){
            System.out.println("***学号不存在***");
            return;
        }
        System.out.println("***请输入新姓名***");
        String name=sc.next();
        System.out.println("***请输入新年龄***");
        int age= sc.nextInt();
        System.out.println("***请输入新生日***");
        String birthday=sc.next();

        Student student = stus.get(index);
        student.setAge(age);
        student.setName(name);
        student.setBirthday(birthday);
        System.out.println("***更改成功***");
    }
}

 JavaBean类

public class Student {
    private String id;
    private String name;
    private int age;
    private String birthday;

          

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值