ArrayList集合&学生管理系统

StringBuilder类

StringBuilder是一个字符串缓冲区,可以往缓冲区中添加任何类型的数据,最终都会变成字符串

public StringBuilder append(任意类型数据)
可以添加任意类型的数据到缓冲区
注意:返回缓冲区本身(一般不用接受返回值,利用这个特性可以实现链式编程)
public StringBuiler reverse()
把缓冲区的内容反转
public String toString()
把缓冲区的内容转化为一个字符串

写一个方法,判断一个字符串是否为对称字符串

public class Demo1{
public static void main(String[] args){
boole f1=duicheng("ababa");
System.out.println(f1);
}
//判断一个字符串是否为对称字符串
public static boolean duicheng(String str){
//把str封装为StringBuilder,再对StringBuilder反转,再转化为字符串,再和原来的字符串相比较
return new StringBuilder(str).reverse().toString().euqlas(str);
}
}

写一个方法,把一个数组按照指定格式转化为字符串

public class Demo2{
public static void main(String[] args){
int[] array={1,2,3,4}

//调用方法把数组变成字符串
String res arrayToString(array);
System.out.println(res);
}

//把一个数组按照指定的格式转化为字符串"[元素1,元素2,元素3...]"
public static String arrayToString(int[] array){
StringBuilder sb=new StringBuilder("[");
for(int i=0;i<array.length;i++){
//如果元素是最后一个
if(i==array.length-1){
sb.append(array[i]).append("]");
}else{
sb.append(array[i].append(",");
}

}
//把最后的字符串返回
return sb.toString();
}

}

ArrayList类

ArrayList表示一个集合(容器),它和数组最大的区别就是长度可变(想添加几个元素就可以添加几个元素)

对于集合的操作,无非就是常用的几种(增 删 查 改)

  • 注意:集合只能存储引用类型不能存储基本数据类型
  • 在java中,每一种基本类型都有一个对应的包装类
    基本类型 包装类
    byte Byte
    short Short
    int Integer
    long Long
    float Float
    double Double
    boolean Boolean
    char Character
public boolean add(E e)
添加元素到集合末尾
public boolean add(int index,E e)
添加元素到集合的指定索引位置

public E remove(int index)
根据索引删除集合中的元素
注意:返回被删除的元素

public E set(int index,E e)
把指定索引的元素修改为新的元素

public E get(int index)
获取集合中指定的元素

public void clear()
清空集合中的元素
public int size()
获取集合的长度(元素的个数)
public boolean isEmpty()
判断集合是否为空

ArrayLIst添加字符串元素并遍历

public class Demo1{
public static void main(String[] args){
//创建一个元素为String的集合
ArrayList<String>list=new ArrayList<>();
list.add("hhhh");
list.add("llll");
list.add("vvvv");
//遍历集合中的元素
for (int i=0;i<list.size();i++){
//获取i索引位置的元素
String s=list.get(i);
System.out.println(s);
}
System.out.println("------------")
}

}

ArrayLIst添加自定义对象并遍历

public class Demo2 {
    public static void main(String[] args) {
        //创建一个元素为Student的集合
        ArrayList<Student> list=new ArrayList<>();

/*
       Student s1=new Student("小明",18);
      Student s2=new Student("小黄",17);
       Student s3=new Student("小刘",20);
       Student s4=new Student("小王",19);
*/

//添加学生对象到集合
        list.add(new Student("小明",18));
        list.add(new Student("小黄",17));
        list.add(new Student("小王",19));
        list.add(new Student("小刘",20));

//遍历集合
        for (int i = 0; i < list.size(); i++) {
            Student stu = list.get(i);
            System.out.println(stu.getName()+","+stu.getAge());
        }
    }
}
创建Student类省略

学生管理系统

当程序运行的时候,显示下面的主页面。根据用户的选择执行不同的功能
---------学生管理系统主界面-------------
1.添加学生
2.查询学生
3.修改学生
4.删除学生
5.退出
请输入您的选择

编写Student类
每一个学生有 学号 姓名 年龄 地址这些属性信息。

/*
在实际开发中,用来描述数据的类称之为JavaBean类(实体类),有下面的要求
    1.私有化成员变量
    2.提供空参数构造方法
    3.提供get和set方法
一般为了方便对类进行管理,把JavaBean类单独放在domain包里面。
 */
public class Student {
    private String id; //学号
    private String name; //姓名
    private String age; //年龄
    private String address; //地址

    public Student() {
    }

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

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    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 getAddress() {
        return address;
    }

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

编写页面

public class Demo2 {
    public static void main(String[] args) {
        //创建集合,用来存储多个Student对象
        ArrayList<Student> list = new ArrayList<>();

        while (true) {
            System.out.println("1.添加学生");
            System.out.println("2.查询学生");
            System.out.println("3.修改学生");
            System.out.println("4.删除学生");
            System.out.println("5.退出");
            System.out.println("请输入您的选择:");

            Scanner sc = new Scanner(System.in);
            String str = sc.nextLine();

            //对输入的数据进行配匹,做出选择
            switch (str) {
                case "1":
                    //添加学生
                    addStudent(list);
                    break;
                case "2":
                    //查询学生
                    findAll(list);
            }
        }
    }

    //添加学生
    public static void addStudent(ArrayList<Student> array) {
        //键盘录入学生信息
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入学生的学号:");
        String sid = sc.nextLine();
        System.out.println("请输入学生的姓名:");
        String sname = sc.nextLine();
        System.out.println("请输入学生的年龄:");
        String sage = sc.nextLine();
        System.out.println("请输入学生的地址:");
        String saddress = sc.nextLine();

        //学生信息封装为Student对象
        Student stu = new Student(sid, sname, sage, saddress);

        //把对象添加到集合中
        array.add(stu);
        System.out.println("添加学生成功");
    }

    //查询所有学生
    public static void findAll(ArrayList<Student> list) {
        //查询前判断是否为kong
        if (list.isEmpty()) {
            System.out.println("没有学生");
            return; //结束方法
        }
        System.out.println("学号\t\t姓名\t年龄\t地址");
        //遍历list集合中每一个Student对象
        for (int i = 0; i < list.size(); i++) {
            Student stu = list.get(i);
            System.out.println(stu.getId() + "\t" + stu.getName() + "\t" + stu.getAge() + "\t\t" + stu.getAddress());
        }

    }

    //删除学生
    public static void deleteStudent(ArrayList<Student> list) {
        //键盘入路删除的学生学号
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入要删除的学生学号");
        String sid = sc.nextLine();

        //遍历集合,查找学号为sid的学生在哪个索引位置
        int index = -1; //-1表示没有找到元素
        for (int i = 0; i < list.size(); i++) {
            Student stu = list.get(i);
            if (stu.getId().equals(sid)) {
                //如果找到了要删除的元素,把索引赋值给index
                index = i;
                break;
            }
        }
        //如果index==-1,说明学号不存在
        if (index == -1) {
            System.out.println("你输入的学号不存在");
        } else {
            list.remove(index);

            System.out.println("删除学生成功");
        }
    }

    //修改学生
    private static void updateStudent(ArrayList<Student> list) {
        //键盘录入删除的学生学号
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入要修改的学生学号:");
        String sid = sc.nextLine();

        //遍历集合,查找学号为sid的学生在那个索引位置
        int index = -1; //-1表示没有找到元素=
        for (int i = 0; i < list.size(); i++) {
            Student stu = list.get(i);
            if (stu.getId().equals(sid)) {
                //如果找到了要删除的元素,把索引赋值给index
                index = i;
                break;
            }
        }

        //如果index==-1,没有找到这个学号
        if (index == -1) {
            System.out.println("你输入的学号不存在");
        } else {
            //修改学信息,重新录入学生信息
            System.out.println("请输入学生的学号:");
            String nid = sc.nextLine();
            System.out.println("请输入学生的姓名:");
            String nname = sc.nextLine();
            System.out.println("请输入学生的年龄:");
            String nage = sc.nextLine();
            System.out.println("请输入学生的地址:");
            String naddress = sc.nextLine();
            //重新创建一个学生对象
            Student nstu = new Student(nid, nname, nage, naddress);

            //用新的学生对象,替换老的对象
            list.set(index, nstu);
            System.out.println("修改学生成功");
        }
    }
}

你可能感兴趣的:(ArrayList,基础,java)