signed

QiShunwang

“诚信为本、客户至上”

ArrayList与学生管理系统

2021/6/3 17:16:10   来源:

文章目录

  • 集合概述
    • ArrayList构造方法和添加方法
    • ArrayList常用方法
    • ArrayList储存字符串并且遍历
    • Arraylist存储学生对象并遍历
    • 学生管理系统

集合概述

集合类的特点:提供一种储存空间可变的储存模型,储存的数据容量可以发生改变

集合类有很多,先学习Arraylist

ArrayList

  • 可以调整大小的数组实现
  • :是一种特殊的数据类型:泛型
  • 如何用?

在出现E的地方我们使用引用数据类型替换即可

比如:ArrayList,ArrayList

ArrayList构造方法和添加方法

方法名说明
public ArrayList()创建一个空的集合对象
public boolean add(E e)将指定的元素追加到此集合的末尾
public void add(int index,element)在此集合中的指定位置插入指定的元素
import sun.awt.geom.AreaOp;

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

public class Application {
    public static void main(String[] args) {
      ArrayList<String> array = new ArrayList<String>();
     // System.out.println(array.add("hello"));
      array.add("Hello");
      array.add("pofenx");
      array.add("帅哥");
      array.add(1,"javase");
      array.add(3,"word");
      System.out.println("array"+array);
    }
    }




ArrayList常用方法

方法名说明
public boolean remove(Object o)删除指定元素,返回删除是否成功
public E remove(int index)删除指定索引处的元素,返回删除是否成功
public E set(int index,E element)修改指定索引处的元素,返回被修改的元素
public E get (get index)返回指定索引处的元素
public int size()返回集合中的元素的个数
import sun.awt.geom.AreaOp;

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

public class Application {
    public static void main(String[] args) {
        ArrayList<String> array = new ArrayList<String>();
        // System.out.println(array.add("hello"));
        array.add("Hello");
        array.add("pofenx");
        array.add("帅哥");
        // array.add(1,"javase");
        // array.add(3,"word");
        // System.out.println("array"+array);
        //  System.out.println(array.remove("word"));
        //  System.out.println(array.remove("javase1"));
        //System.out.println(array.remove(1));
        //.IndexOutOfBoundsException:索引越界
        System.out.println(array);
        System.out.println(array.get(0));
        System.out.println(array.get(1));
        System.out.println(array.get(2));
        // System.out.println(array.get(5));//.IndexOutOfBoundsException
    }
}



ArrayList储存字符串并且遍历

需求:创建一个字符串集合,使用程序实现在控制台遍历该集合

思路:

  1. 创建集合对象
  2. 往集合中添加字符串对象
  3. 遍历集合:获取每一个元素,通过get(int index)实现
  4. 遍历集合:获取到集合长度,通过size()方法实现
for(int i = 0;i<集合对象.size();i++){
    集合对象.get(i) //就是指定所引处的元素
}

import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;
import sun.awt.geom.AreaOp;

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

public class Application {
    public static void main(String[] args) {
        ArrayList<String> array = new ArrayList<String>();
      array.add("大哥");
      array.add("大哥1");
      array.add("大哥2");
      array.add("大哥3");
        for (int i = 0; i < array.size(); i++) {
         String s = (array.get(i));
            System.out.println(s);
    }
}
}

Arraylist存储学生对象并遍历

需求:创建一个存储学生对象的集合,使用实现程序在控制台遍历该集合学生的姓名和年龄来键盘的输入

思路

  1. 定义学生类
  2. 创建集合对象
  3. 键盘输入需要数据
  4. 创建学生对象,把键盘输入赋值给学生对象
  5. 往集合中添加学生对象
  6. 遍历集合
import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;
import sun.awt.geom.AreaOp;

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

public class Application {
    public static void main(String[] args) {
        ArrayList<Student>  student = new ArrayList<Student>();
        addStudent(student);
        addStudent(student);
        addStudent(student);
        for (int i = 0; i < student.size(); i++) {
           Student s = student.get(i);
            System.out.println(s.getName()+","+s.getAge());}
    }public static void addStudent(ArrayList<Student> student){
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入学生姓名");
        String name = sc.nextLine();
        System.out.println("请输入学生年龄");
        String age = sc.nextLine();
        //创建学生对象,把键盘输入的数据赋值给学生对象的成员变量
        Student s = new Student();
        s.setName(name);
        s.setAge(age);
        //往集合中添加集合对象
        student.add(s);
        }
        }






public class Student {
 private   String name ;
 private    String age ;
 public Student(){}
    public Student(String name ,String age){
     this.name = name;
     this.age = age;
 }
 public void setName(String name){
     this.name =name;
    }
    public void setAge(String age){
     this.age =age;
    }
    public String getAge(){
     return  age;
    }
    public  String getName(){
     return name;
    }
    }

学生管理系统

学生管理系统实现思路

  1. 定义学生类

  2. 主界面编写代码

  3. 添加学生

  4. 查看学生

  5. 删除学生

  6. 修改学生

import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;
import sun.awt.geom.AreaOp;

import java.sql.SQLOutput;
import java.util.ArrayList;
import java.util.Scanner;

public class Application {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        ArrayList<Student> student = new ArrayList<Student>();
        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("----请输入你的选择----");
            String line = sc.nextLine();
            switch (line) {
                case "1":
                    System.out.println("添加学生");
                    addStudent(student);

                    break;
                case "2":
                    System.out.println("删除学生");
                    deleteStudent(student);
                    break;
                case "3":
                    System.out.println("修改学生");
                    reverseStudent(student);
                    break;
                case "4":
                    System.out.println("查看所有学生");
                    seeStudent(student);
                    break;
                case "5":
                    System.out.println("已经退出,谢谢使用");

                    break;
                default:
                    System.out.println("输入序号错误,请按照提示输入");

            }
        }
    }

    public static void addStudent(ArrayList<Student> student){
        Scanner sc = new Scanner(System.in);
        String sid ;
       while (true) {
           System.out.println("请输入学生学号");
        sid = sc.nextLine();
           boolean s = isUsed(student, sid);
           if (s) {
               System.out.println("你输入的学号已经被使用,请重新输入");
           }else{
               break;
           }
       }
        System.out.println("请输入学生姓名");
        String name = sc.nextLine();
        System.out.println("请输入学生年龄");
        String age = sc.nextLine();
        System.out.println("请输入学生居住地址");
        String address = sc.nextLine();
        //创建学生对象,把键盘输入的数据赋值给学生对象的成员变量
        Student s = new Student();
        s.setName(name);
        s.setAge(age);
        s.setSid(sid);
        s.setAddress(address);
        //往集合中添加集合对象
        student.add(s);
        System.out.println("添加学生成功");
        }
        public static void seeStudent(ArrayList<Student> array){
        if(array.size()==0){
            System.out.println("无信息,请先添加信息,再查询");
        }else {
            System.out.println("学号" + "\t" + "\t" + "姓名" + "\t" + "\t" + "年龄" + "\t" + "\t" + "居住地址");
            for (int i = 0; i < array.size(); i++) {
                Student s = array.get(i);
                System.out.println(s.getSid() + "\t" + "\t" + s.getName() + "\t" + "\t" + s.getAge() + "岁\t" + s.getAddress());
            }
        }
        }
        public static void deleteStudent(ArrayList<Student> array){
            Scanner sc = new Scanner(System.in);
        System.out.println("请输入需要删除学生的学号");
        String sid = sc.nextLine();
            for (int i = 0; i < array.size(); i++) {
                Student s =array.get(i);

                if(sid.equals(s.getSid())) {
                    array.remove(i);
                    System.out.println("删除成功");
                       break;
                }else{
                    System.out.println("学号输入有误,删除失败,请查正后重新输入");

                }
                break;
            }

        }
        public static void reverseStudent(ArrayList<Student> array){
        Scanner sc = new Scanner(System.in);
            System.out.println("请输入要修改学生信息的编号");
            String sid = sc.nextLine();
            System.out.println("请输入要修改的学生姓名");
            String name  = sc.nextLine();
            System.out.println("请输入要修改的学生年龄");
            String age  = sc.nextLine();
            System.out.println("请输入要修改的学生居住地");
            String address  = sc.nextLine();
            Student s = new Student();
            s.setSid(sid);
            s.setAddress(address);
            s.setAge(age);
            s.setName(name);
            for (int i = 0; i < array.size(); i++) {
              Student student = array.get(i);
                  if(student.getSid().equals(sid)){
                  array.set(i,s);
                System.out.println("修改成功");
                break;

            }else{
                      System.out.println("输入错误,修改失败");
                  }
                  break;
            }
        }
        public static boolean isUsed(ArrayList<Student> array,String sid){
        boolean s = false;
            for (int i = 0; i < array.size(); i++) {
                Student s1 = array.get(i);
                if(s1.getSid().equals(sid)){
                    s=true;
                    break;
                }
            }
            return  s;
        }
        }


public class Student {
 private   String name ;
 private    String age ;
 private    String sid ;//学号
 private    String address ;//居住地
 public Student(){}
    public Student(String name ,String age){
     this.name = name;
     this.age = age;
 }
 public void setName(String name){
     this.name =name;
    }
    public void setAge(String age){
     this.age =age;
    }
    public String getAge(){
     return  age;
    }
    public  String getName(){
     return name;
    }

    public String getSid() {
        return sid;
    }

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

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
}