第九天javaSE基础(学生管理系统)

Java EE基础班课程(第九天)

1.ArrayList

包结构:
  java.util.ArrayList
类结构:
  public class ArrayList<E>
	extends AbstractList<E>
	implements List<E>, RandomAccess, Cloneable, Serializable
描述:
    可调整大小的数组。
1.1构造方法
/*
    构造方法:
        ArrayList() 构造一个初始容量为十的空列表。
        ArrayList(int initialCapacity) 构造具有指定初始容量的空列表。
 */
public class _01ArrayList入门 {
    public static void main(String[] args) {
        //ArrayList() 构造一个初始容量为十的空列表。
        ArrayList list = new ArrayList();
        System.out.println(list);//为什么打印的是不是变量在内存中地址???
        //ArrayList(int initialCapacity) 构造具有指定初始容量的空列表。
        ArrayList list1 = new ArrayList(16);//了解
    }
}
1.2常用方法
1.2.1 Add和泛型
import java.util.ArrayList;

public class Demo01Add {
    public static void main(String[] args) {
        //boolean add(E e)
        //将指定的元素追加到此列表的末尾。
        ArrayList<String> list = new ArrayList<>();
        list.add("周海");
        list.add("周豪杰");
        list.add("谭璐");
        list.add("张彪");
        list.add("鑫鑫");
        list.add("嘉伟");
//        list.add(1);
//        list.add(true);
//        list.add(0.0);

        System.out.println(list);

        //泛型 用来约束集合存储数据的数据类型
        // 格式 集合<> ArrayList<String> list = new ArrayList<>();
        // 泛型参与代码的编译 ,不参与运行

    }
}

1.2.2Add
/*
    boolean add(E e)
        将指定的元素追加到此列表的末尾。
    void add(int index, E element)
        在此列表中的指定位置插入指定的元素。
    因为ArrayList底层是数组,所以ArrayList集合有索引,索引0开始,到集合的元素数减一
 */
public class Demo02Add {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        //boolean add(E e)将指定的元素追加到此列表的末尾。
        list.add("周海");
        list.add("周豪杰");
        list.add("谭璐");
        list.add("张彪");
        list.add("鑫鑫");
        list.add("嘉伟");
        System.out.println(list);
        // void add(int index, E element)
        //        在此列表中的指定位置插入指定的元素。指定位置上的元素以及指定位置后面所有元素都要依次后移一位
        list.add(2, "周俊池");
        System.out.println(list);
    }
}

1.2.3获取方法get
import java.util.ArrayList;

/*
    E get(int index) 返回此列表中指定位置的元素。
    
    int size() 返回此列表中的元素数。

    ArrayList 底层是数组的实现,所以有索引,从0开始带元素个数减一,索引是连续的每次递增一 使用循环遍历集合
 */
public class Demo03Get {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        //boolean add(E e)将指定的元素追加到此列表的末尾。
        list.add("周海");
        list.add("周豪杰");
        list.add("周俊池");
        list.add("谭璐");
        list.add("张彪");
        list.add("鑫鑫");
        list.add("嘉伟");
        //ArrayList 底层是数组的实现,所以有索引,
        // 从0开始带元素个数减一,索引是连续的每次递增一 使用循环遍历集合
//        String s = list.get(0);
//        System.out.println(s);

        //集合遍历
        for (int i = 0; i < 7; i++) {
            String s1 = list.get(i);
            System.out.println(s1);
        }
        //求集合中存储多少个元素的方法:int size() 返回此列表中的元素数。

        int size = list.size();
        System.out.println(size);

        //使用循环和size方法遍历数组   推荐使用
        for (int i = 0; i < list.size(); i++) {
            String s = list.get(i);
            System.out.println(s);
        }
    }
}

1.2.4修改 set
import java.util.ArrayList;

/*
    E set(int index, E element)
用指定的元素替换此列表中指定位置的元素。  返回被修改的元素
 */
public class Demo04Set {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        //boolean add(E e)将指定的元素追加到此列表的末尾。
        list.add("周海");
        list.add("周豪杰");
        list.add("周俊池");
        list.add("谭璐");
        list.add("张彪");
        list.add("鑫鑫");
        list.add("嘉伟");

        //把"鑫鑫"修改成 "国鑫"
//        String s = list.set(5, "国鑫");
//        System.out.println(s);
//        System.out.println("---------");
//        System.out.println(list);
        //方式二:
        for (int i = 0; i < list.size(); i++) {
            String s1 = list.get(i);
            if (s1.equals("鑫鑫")){
                list.set(i,"国鑫");
            }
        }
        System.out.println(list);
    }
}

1.2.5删除remove
/*
    E remove(int index) 删除该列表中指定位置的元素。
 */
public class Demo05Remove {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        //boolean add(E e)将指定的元素追加到此列表的末尾。
        list.add("周海");
        list.add("周豪杰");
        list.add("周俊池");
        list.add("张三");
        list.add("张三");
        list.add("谭璐");
        list.add("张彪");
        list.add("张三");
        list.add("张三");
        list.add("鑫鑫");
        list.add("嘉伟");
        System.out.println(list);
        //E remove(int index) 删除该列表中指定位置的元素。 返回被删除的元
//        String s = list.remove(5);
//        System.out.println(s);
//        System.out.println("-------------");
//        System.out.println(list);
        for (int i = 0; i < list.size(); i++) {
            String s = list.get(i);
            if (s.equals("张三")){
                list.remove(i);
                i--;
            }
        }
        System.out.println(list);
    }
}

1.2.6删除remove
/*
    boolean remove(Object o)
从列表中删除指定元素的第一个出现(如果存在)。
 */
public class Demo06Remove {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        //boolean add(E e)将指定的元素追加到此列表的末尾。
        list.add("周海");
        list.add("周豪杰");
        list.add("周俊池");
        list.add("张三");
        list.add("谭璐");
        list.add("张彪");
        list.add("张三");
        list.add("张三");
        list.add("鑫鑫");
        list.add("嘉伟");
        System.out.println(list);

        //boolean remove(Object o)
        //从列表中删除指定元素的第一个出现(如果存在)。
//        boolean b = list.remove("张三");
//        System.out.println(b);
//        System.out.println(list);

        //删除list集合中第一次张三
        for (int i = list.size() - 1; i >= 0; i--) {
            String s = list.get(i);
            if (s.equals("张三")){
                list.remove("张三");//list集合中第一次出现元素
                break;
            }
        }
        System.out.println(list);
//       删除list集合中最后一个出现元素
//        for (int i = list.size() - 1; i >= 0; i--) {
//            String s = list.get(i);
//            if (s.equals("张三")){
//                list.remove(i);
//                break;
//            }
//        }
//        System.out.println(list);
    }
}

1.3存储字符串并遍历
import java.util.ArrayList;

public class Demo01存储字符串并遍历 {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        //boolean add(E e)将指定的元素追加到此列表的末尾。
        list.add("周海");
        list.add("周豪杰");
        list.add("周俊池");
        list.add("谭璐");
        list.add("张彪");
        list.add("鑫鑫");
        list.add("嘉伟");

        //1.使用循环 2.size方法 3.get方法
        for (int i = 0; i < list.size(); i++) {
            //使用get
            String s = list.get(i);
            System.out.println(s);
        }
    }
}
1.4存储学生对象并遍历
import java.util.ArrayList;
import java.util.Collections;

/*
    分析:
        1.存储学生对象
            1.1 创建学生类 创建学生对象
        2.存储到集合当中去
            2.1ArrayList集合 泛型:Student
            2.2遍历使用循环 for size方法
            2.3使用get方法获取指定索引位置处的学生对象
            2.4输出学生对象  getXxx


 */
public class Demo02存储学生对象并遍历 {
    public static void main(String[] args) {
        //创建学生对象
        Student student = new Student();
        student.setName("唐文俊");
        student.setAge(6);

        Student student1 = new Student("周立林", 18);

        Student student2 = new Student("江秋霖", 18);

        //创建集合对象 泛型 :Student
        ArrayList<Student> list = new ArrayList<>();
//        list.add(student);
//        list.add(student1);
//        list.add(student2);
        /*
        Collections:集合的工具类 java.util.Collections
            addAll(第一个参数是用来,存放对象集合;...后面的参数是要添加到集合中的对象)

         */
        Collections.addAll(list,student,
                student1,
                student2);

        //遍历集合 获取元素
        for (int i = 0; i < list.size(); i++) {
            Student stu = list.get(i);
            System.out.println(stu.getName()+"......"+stu.getAge());
        }

    }
}
1.5集合元素筛选
import java.util.ArrayList;
import java.util.Collections;

/*
    需求:定义一个方法,方法接收一个集合对象(泛型为Student),方法内部将年龄低于18的学生对象找出
并存入新集合对象,方法返回新集合。
        分析:
            1.参数列表:
                ArrayList<Student> list
            2.功能:
                将年龄小于18岁学生对象 存放到新的集合中
            3.返回值类型
                ArrayList<Student> newList



 */
public class Demo03集合元素筛选 {
    public static void main(String[] args) {
        Student student = new Student();
        student.setName("唐文俊");
        student.setAge(6);
        Student student1 = new Student("周立林", 18);
        Student student2 = new Student("江秋霖", 18);
        Student student3 = new Student("陈勇", 7);
        Student student4 = new Student("川川", 8);

        //创建集合对象
        ArrayList<Student> list = new ArrayList<>();
        //添加集合
        Collections.addAll(list,student,student1,student2,student3,student4);

        //调用方法
        ArrayList<Student> newList = getStudent(list);

        //遍历集合
        for (int i = 0; i < newList.size(); i++) {
            Student stu = newList.get(i);
            System.out.println(stu.getName()+"......"+stu.getAge());
        }


    }
    public static ArrayList<Student> getStudent(ArrayList<Student> list){
        //创建新的集合
        ArrayList<Student> newList = new ArrayList<>();
        //变量集合
        for (int i = 0; i < list.size(); i++) {
            //获取集合中的学生对象
            Student student = list.get(i);
            //判断学生的年龄是否小于18岁
            if (student.getAge()<18){
                //如果小于18岁,添加到newList集合中
                newList.add(student);
            }
        }
        return newList;

    }
}
public class Student {
   private String name;
   private int age;

    public Student() {
    }

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

2.学生管理系统

public class Student {
    private String sid;
    private String name;
    private String age;
    private String birthday;

    public Student() {
    }

    public Student(String sid, String name, String age, String birthday) {
        this.sid = sid;
        this.name = name;
        this.age = age;
        this.birthday = birthday;
    }

    public String getSid() {
        return sid;
    }

    public void setSid(String sid) {
        this.sid = sid;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }

    public String getBirthday() {
        return birthday;
    }

    public void setBirthday(String birthday) {
        this.birthday = birthday;
    }
}

import com.itheima.domain.Student;

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

public class StudentManage {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        ArrayList<Student> list = new ArrayList<>();
        wc:
        while (true) {
            System.out.println("--------欢迎来到学生管理系统--------");
            System.out.println("1 添加学生");
            System.out.println("2 删除学生");
            System.out.println("3 修改学生");
            System.out.println("4 查看学生");
            System.out.println("5 退出");
            System.out.println("请输入您的选择:");
            int num = scanner.nextInt();
            switch (num) {
                case 1:
                    //System.err.println("1 添加学生");
                    addStudent(list);
                    break;
                case 2:
//                    System.err.println("2 删除学生");
                    removeStudent(list);
                    break;
                case 3:
//                    System.err.println("3 修改学生");
                    updateStudent(list);
                    break;
                case 4:
                    //System.err.println("4 查看学生");
                    findStudent(list);
                    break;
                case 5:
                    System.err.println("5 退出");
                    System.exit(0);
//                    break wc;
                default:
                    System.err.println("您的输入有误!!!");
            }

        }
    }
    //修改学生
    public static void updateStudent(ArrayList<Student> list) {
        //获取要修改的学生的学号
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入要修改的学生学号:");
        String sid = scanner.nextLine();
        //调用方法判断学号是否存在
        int index = findStudentBySid(list, sid);
        if (index==-1){
            System.out.println("您要修改学生不存在,请重新选择");
        }else {
            System.out.println("请输入新的学生姓名:");
            String newName = scanner.nextLine();
            System.out.println("请输入新的学生年龄");
            String newAge = scanner.nextLine();
            System.out.println("请输入新的学生生日:");
            String newBirthday = scanner.nextLine();

            Student newStu = new Student(sid, newName, newAge, newBirthday);

            //把新的学生对象,更新到list集合中
            list.set(index,newStu);
            System.out.println("修改成功!!!");


        }

    }

    //删除学生
    public static void removeStudent(ArrayList<Student> list) {
        //获取要删除的学生的学号
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入要删除的学生学号:");
        String sid = scanner.nextLine();
        //调用方法判断学号是否存在
        int index = findStudentBySid(list, sid);
        if (index==-1){
            System.out.println("学号不存在,请重新选择!");
        }else {
            list.remove(index);
            System.out.println("删除成功");
        }
    }

    //查找学生
    public static void findStudent(ArrayList<Student> list) {
        //判断集合中是否有数据,如果没有提示 学生信息为空
        if(list.size()==0 || !list.isEmpty()){
            System.out.println("学生信息为空,请添加后查询!!!");
            return;
        }
        //如果集合中存储的有学生信息,就遍历集合,获取到每个学生对象,并输出到控制台
        System.out.println("学号\t\t姓名\t年龄\t生日");
        for (int i = 0; i < list.size(); i++) {
            Student student = list.get(i);
            System.out.println(student.getSid()+"\t\t"+student.getName()+"\t"+student.getAge()+"\t"+student.getBirthday());
        }
    }
    //添加学生方法

    public static void addStudent(ArrayList<Student> list) {
        //键盘录入学生信息
        Scanner sc = new Scanner(System.in);
        String sid;
        //判断学号是否存在如果存在,重新输入
        while (true){
            System.out.println("请输入学生的学号:");
            sid = sc.nextLine();
            int index = findStudentBySid(list,sid);
            if (index != -1){
                System.out.println("学号已存在,请重新输入学号!");
            }else {
                break;
            }
        }

        System.out.println("请输入学生的姓名:");
        String name = sc.nextLine();
        System.out.println("请输入学生的年龄:");
        String age = sc.nextLine();
        System.out.println("请输入学生的生日:");
        String birthday = sc.nextLine();
        //封装到学生对象中
        Student student = new Student(sid,name,age,birthday);
        //把学生对象添加到集合中
        list.add(student);
        System.out.println("添加成功");
    }

    private static int findStudentBySid(ArrayList<Student> list, String sid) {
        //遍历集合
        for (int i = 0; i < list.size(); i++) {
            //拿到集合中的元素
            Student student = list.get(i);
            if (student.getSid().equals(sid)){//判断集合中是否存在sid学号对应的Student对象
                return i;
            }
        }
        return -1;//-1带表集合中不存在,sid学号对应的学生对象
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值