zoukankan      html  css  js  c++  java
  • Java 的ArrayList构造方法

    目录

    ArrayList 构造方法使用

    ArrayList 类常用方法

    ArrayList集合存储字符串遍历

    简单的学生管理系统

     

    1、ArrayList 构造方法

    ArrayList类概述
      什么是集合

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

      ArrayList集合的特点 底层是数组实现的,长度可以变化

      泛型的使用 用于约束集合中存储元素的数据类型

    package com.itheima_01;
    
    import java.util.ArrayList;
    
    /*
        ArrayList构造方法:
            public ArrayList​():创建一个空的集合对象
    
        ArrayList添加方法:
            public boolean add(E e):将指定的元素追加到此集合的末尾
            public void add(int index,E element):在此集合中的指定位置插入指定的元素
     */
    public class ArrayListDemo01 {
        public static void main(String[] args) {
            //public ArrayList​():创建一个空的集合对象
    //        ArrayList<String> array = new ArrayList<>();
    
            ArrayList<String> array = new ArrayList<String>();
    
            //public boolean add(E e):将指定的元素追加到此集合的末尾
    //        System.out.println(array.add("hello"));
    
            array.add("hello");
            array.add("world");
            array.add("java");
    
            //public void add(int index,E element):在此集合中的指定位置插入指定的元素
            array.add(1,"javase");
    //        array.add(3,"javaee");
    
            //IndexOutOfBoundsException
    //        array.add(4,"javaee");
    
            //输出集合
            System.out.println("array:" + array);
    
        }
    }

    2、ArrayList 类常用方法

    package com.itheima_01;
    
    import java.util.ArrayList;
    
    /*
        ArrayList常用方法:
            public boolean remove(Object o):删除指定的元素,返回删除是否成功
            public E remove(int index):删除指定索引处的元素,返回被删除的元素
            public E set(int index,E element):修改指定索引处的元素,返回被修改的元素
            public E get(int index):返回指定索引处的元素
            public int size():返回集合中的元素的个数
     */
    public class ArrayListDemo02 {
        public static void main(String[] args) {
            //创建集合
            ArrayList<String> array = new ArrayList<String>();
    
            //添加元素
            array.add("hello");
            array.add("world");
            array.add("java");
    
            //public boolean remove(Object o):删除指定的元素,返回删除是否成功
    //        System.out.println(array.remove("world"));
    //        System.out.println(array.remove("javaee"));
    
            //public E remove(int index):删除指定索引处的元素,返回被删除的元素
    //        System.out.println(array.remove(1));
    
            //IndexOutOfBoundsException
    //        System.out.println(array.remove(3));
    
            //public E set(int index,E element):修改指定索引处的元素,返回被修改的元素
    //        System.out.println(array.set(1,"javaee"));
    
            //IndexOutOfBoundsException
    //        System.out.println(array.set(3,"javaee"));
    
            //public E get(int index):返回指定索引处的元素
    //        System.out.println(array.get(0));
    //        System.out.println(array.get(1));
    //        System.out.println(array.get(2));
            //IndexOutOfBoundsException
            //System.out.println(array.get(3)); 
    
            //public int size():返回集合中的元素的个数
            System.out.println(array.size());
    
            //输出集合
            System.out.println("array:" + array);
        }
    }

     集合存储字符串遍历

    package com.itheima_02;
    
    import java.util.ArrayList;
    
    /*
        需求:
            创建一个存储字符串的集合,存储3个字符串元素,使用程序实现在控制台遍历该集合
    
        思路:
            1:创建集合对象
            2:往集合中添加字符串对象
            3:遍历集合,首先要能够获取到集合中的每一个元素,这个通过get(int index)方法实现
            4:遍历集合,其次要能够获取到集合的长度,这个通过size()方法实现
            5:遍历集合的通用格式
     */
    public class ArrayListTest01 {
        public static void main(String[] args) {
            //创建集合对象
            ArrayList<String> array = new ArrayList<String>();
    
            //往集合中添加字符串对象
            array.add("刘正风");
            array.add("左冷禅");
            array.add("风清扬");
    
            //遍历集合,首先要能够获取到集合中的每一个元素,这个通过get(int index)方法实现
    //        System.out.println(array.get(0));
    //        System.out.println(array.get(1));
    //        System.out.println(array.get(2));
    
    //        for(int i=0; i<3; i++) {
    //            System.out.println(array.get(i));
    //        }
    
            //遍历集合,其次要能够获取到集合的长度,这个通过size()方法实现
    //        System.out.println(array.size());
    
            //遍历集合的通用格式
            for(int i=0; i<array.size(); i++) {
                String s = array.get(i);
                System.out.println(s);
            }
        }
    }
    package com.itheima_03;
    
    /*
        学生类
    
        为了键盘录入数据方便,把学生类中的成员变量都定义为String类型
     */
    public class Student {
        private String name;
        private String age;
    
        public Student() {
        }
    
        public Student(String name, String age) {
            this.name = name;
            this.age = age;
        }
    
        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;
        }
    }
    
    
    // -----------------------------------------------------------------------
    
    package com.itheima_03;
    
    import java.util.ArrayList;
    import java.util.Scanner;
    
    /*
        需求:创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合
             学生的姓名和年龄来自于键盘录入
    
        思路:
            1:定义学生类,为了键盘录入数据方便,把学生类中的成员变量都定义为String类型
            2:创建集合对象
            3:键盘录入学生对象所需要的数据
            4:创建学生对象,把键盘录入的数据赋值给学生对象的成员变量
            5:往集合中添加学生对象
            6:遍历集合,采用通用遍历格式实现
     */
    public class ArrayListTest {
        public static void main(String[] args) {
            //创建集合对象
            ArrayList<Student> array = new ArrayList<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);
    
            //往集合中添加学生对象
            array.add(s);
            */
    
            //为了提高代码的复用性,我们用方法来改进程序
            addStudent(array);
            addStudent(array);
            addStudent(array);
    
            //遍历集合,采用通用遍历格式实现
            for (int i = 0; i < array.size(); i++) {
                Student s = array.get(i);
                System.out.println(s.getName() + "," + s.getAge());
            }
        }
    
        /*
            两个明确:
                返回值类型:void
                参数:ArrayList<Student> array
         */
        public static void addStudent(ArrayList<Student> array) {
            //键盘录入学生对象所需要的数据
            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);
    
            //往集合中添加学生对象
            array.add(s);
        }
    }

    简单的学生管理系统

    学生类

    package com.itheima;
    /*
        学生类
        Alt+Insert  根据自己的需要进行选择
     */
    public class Student {
        //学号
        private String sid;
        //姓名
        private String name;
        //年龄
        private String age;
        //居住地
        private String address;
    
        public Student() {
        }
    
        public Student(String sid, String name, String age, String address) {
            this.sid = sid;
            this.name = name;
            this.age = age;
            this.address = address;
        }
    
        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 getAddress() {
            return address;
        }
    
        public void setAddress(String address) {
            this.address = address;
        }
    }

    管理系统

    package com.itheima;
    
    import java.util.ArrayList;
    import java.util.Scanner;
    
    /*
        学生管理系统
     */
    public class StudentManager {
    
        public static void main(String[] args) {
            //创建集合对象,用于存储学生数据
            ArrayList<Student> array = 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("请输入你的选择:");
    
                //用Scanner实现键盘录入数据
                Scanner sc = new Scanner(System.in);
                String line = sc.nextLine();
    
                //用switch语句完成操作的选择
                switch (line) {
                    case "1":
                        addStudent(array);
                        break;
                    case "2":
                        deleteStudent(array);
                        break;
                    case "3":
    //                    System.out.println("修改学生");
                        updateStudent(array);
                        break;
                    case "4":
                        findAllStudent(array);
                        break;
                    case "5":
                        System.out.println("谢谢使用");
                        System.exit(0); //JVM退出
                }
            }
        }
    
        //定义一个方法,用于添加学生信息
        public static void addStudent(ArrayList<Student> array) {
            //键盘录入学生对象所需要的数据,显示提示信息,提示要输入何种信息
            Scanner sc = new Scanner(System.in);
    
            //为了让sid在while循环外面被访问到,我们就把它定义在了循环外
            String sid;
    
            //为了让程序能够回到这里,我们使用循环实现
            while (true) {
                System.out.println("请输入学生学号:");
                sid = sc.nextLine();
    
                boolean flag = isUsed(array, sid);
                if (flag) {
                    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.setSid(sid);
            s.setName(name);
            s.setAge(age);
            s.setAddress(address);
    
            //将学生对象添加到集合中
            array.add(s);
    
            //给出添加成功提示
            System.out.println("添加学生成功");
        }
    
        //定义一个方法,判断学号是否被使用
        public static boolean isUsed(ArrayList<Student> array, String sid) {
            //如果与集合中的某一个学生学号相同,返回true;如果都不相同,返回false
            boolean flag = false;
    
            for(int i=0; i<array.size(); i++) {
                Student s = array.get(i);
                if(s.getSid().equals(sid)) {
                    flag = true;
                    break;
                }
            }
    
            return flag;
        }
    
        //定义一个方法,用于查看学生信息
        public static void findAllStudent(ArrayList<Student> array) {
            //判断集合中是否有数据,如果没有显示提示信息
            if (array.size() == 0) {
                System.out.println("无信息,请先添加信息再查询");
                //为了让程序不在往下执行,给出return;
                return;
            }
    
    
            //显示表头信息
            //	 其实就是tab键的位置
            System.out.println("学号			姓名		年龄		居住地");
    
            //将集合中数据取出按照对应格式显示学生信息,年龄显示补充“岁”
            for (int i = 0; i < array.size(); i++) {
                Student s = array.get(i);
                System.out.println(s.getSid() + "	" + s.getName() + "	" + s.getAge() + "" + s.getAddress());
            }
        }
    
        //定义一个方法,用于删除学生信息
        public static void deleteStudent(ArrayList<Student> array) {
            //键盘录入要删除的学生学号,显示提示信息
            Scanner sc = new Scanner(System.in);
    
            System.out.println("请输入你要删除的学生的学号:");
            String sid = sc.nextLine();
    
            //在删除/修改学生操作前,对学号是否存在进行判断
            //如果不存在,显示提示信息
            //如果存在,执行删除/修改操作
            int index = -1;
    
            for (int i = 0; i < array.size(); i++) {
                Student s = array.get(i);
                if (s.getSid().equals(sid)) {
    //                int index = i;
                    index = i;
                    break;
                }
            }
    
            if (index == -1) {
                System.out.println("该信息不存在,请重新输入");
            } else {
                array.remove(index);
                //给出删除成功提示
                System.out.println("删除学生成功");
            }
        }
    
    
        //定义一个方法,用于修改学生信息
        private static void updateStudent(ArrayList<Student> array) {
            //键盘录入要修改的学生学号,显示提示信息
            Scanner sc = new Scanner(System.in);
            System.out.print("请输入你要修改的学生的学号:");
            String sid = sc.nextLine();
    
            //创建学生对象
            Student s = new Student();
            s.setSid(sid);
            int index = -1;
            //遍历集合修改对应的学生信息
            for (int i = 0; i < array.size(); i++) {
                Student student = array.get(i);
                //键盘录入要修改的学生信息
                if (student.getSid().equals(sid)) {
                    System.out.print("请输入学生新姓名:");
                    String name = sc.nextLine();
    
                    System.out.print("请输入学生新年龄:");
                    String age = sc.nextLine();
    
                    System.out.print("请输入学生新地址:");
                    String address = sc.nextLine();
    
    
                    s.setName(name);
                    s.setAge(age);
                    s.setAddress(address);
                    array.set(i, s);
                    index = i;
                    break;
                }
            }
            if (index == -1) {
                //判断是不是没有该信息
                System.out.println("该信息不存在,请重新输入!");
            } else {
                //给出修改成功提示
                System.out.println("修改学生成功!");
            }
        }
    }
  • 相关阅读:
    BZOJ 3132: 上帝造题的七分钟 树状数组+差分
    PAT Advanced 1006 Sign In and Sign Out (25 分)
    PAT Advanced 1011 World Cup Betting (20 分)
    PAT Basic 1032 挖掘机技术哪家强 (20 分)
    PAT Basic 1028 人口普查 (20 分)
    PAT Basic 1004 成绩排名 (20 分)
    大数据数据库HBase(二)——搭建与JavaAPI
    PAT Advanced 1009 Product of Polynomials (25 分)(vector删除元素用的是erase)
    PAT Advanced 1002 A+B for Polynomials (25 分)(隐藏条件,多项式的系数不能为0)
    PAT Basic 1041 考试座位号 (15 分)
  • 原文地址:https://www.cnblogs.com/Axianba/p/15155581.html
Copyright © 2011-2022 走看看