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++) {//使用getString s = list.get(i);System.out.println(s);}}
}

1.4存储学生对象并遍历

import java.util.ArrayList;
import java.util.Collections;/*分析:1.存储学生对象1.1 创建学生类 创建学生对象2.存储到集合当中去2.1ArrayList集合 泛型:Student2.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);//创建集合对象 泛型 :StudentArrayList<Student> list = new ArrayList<>();
//        list.add(student);
//        list.add(student1);
//        list.add(student2);/*Collections:集合的工具类 java.util.CollectionsaddAll(第一个参数是用来,存放对象集合;...后面的参数是要添加到集合中的对象)*/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> list2.功能:将年龄小于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学号对应的学生对象}
}

第九天javaSE基础(学生管理系统)相关推荐

  1. Python基础day05【函数应用:学生管理系统、拆包、今日总结】

    视频.源码.课件.软件.笔记:超全面Python基础入门教程[十天课程]博客笔记汇总表[黑马程序员] Python基础day05[函数(函数传参的两种形式.函数形参).拆包.引用.可变与不可变类型.引 ...

  2. Python制作基础学生信息管理系统

    本文详细讲解了Python制作基础学生信息管理系统的实现,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧.编程资料领取 目录 一.前言 二.开发环境: 三.涉及知 ...

  3. java基础入门-04-【集合学生管理系统】

    Java基础入门-04-[集合&学生管理系统] 11.集合&学生管理系统 11.1.ArrayList 集合和数组的优势对比: 11.1.1 ArrayList类概述 11.1.2 A ...

  4. 【开发细节】用C语言基础写学生管理系统(七)

    前情回顾 完成了所有自定义头文件的编写 一.本次目标 完成程序主入口,一一对应功能实现算法,直到所有功能基本上实现 GitHub:https://github.com/ITchujian/Studen ...

  5. 11 Java基础整合---从配置环境变量到完成学生管理系统

    文章目录 1 java基础知识梳理 2 开发环境搭建 2.1 安装JDK 2.2 配置环境变量 3 java基础语法 案例1 --- HelloWord案例 3.1 标识符和关键字 3.2 常量和变量 ...

  6. JavaSE学生管理系统(ArrayList集合来做)

    JavaSE学生管理系统 Student类: public class Student { //创建私有属性:学生学号.姓名.年龄.地址 private int id; private String ...

  7. Python基础 编写项目 学生管理系统

    print('欢迎来到成绩管理系统'.center(30,'*')) list = [] while True: print('1.录入成绩') print('2.查看成绩') print('3.删除 ...

  8. 【Android基础】学生管理系统

    用户可以输入姓名.性别.年龄三个字段,通过点击添加学生按钮,将学生信息展示到开始为空的ScrollView控件中,ScrollView控件只能包裹一个控件,我这里包裹的是LinearLayout.点击 ...

  9. java有一个学生对象_创建学生集合类_根据学生学号倒序排列__java学习--基础知识第九天--对象数组、集合类之ArrayList、学生管理系统案例...

    今日内容介绍 u 对象数组 u 集合类之ArrayList u 学生管理系统案例 第1章 对象数组 1.1 对象数组概述 A:基本类型的数组:存储的元素为基本类型 int[] arr={1,2,3,4 ...

最新文章

  1. C#获取文件的当前路径
  2. 疫情凶险,开学延期:在家中陪孩子,需要注意这3点
  3. SQL存储过程rollback tran的使用
  4. namesapce的作用 增加访问路径 目的:区分不同包的相同action的访问路径
  5. 关于昌平100度健身俱乐部全民健身情况调查报告
  6. 用c语言绘制自定义图形,Android使用自定义View绘图
  7. html显示mysql图片路径_MySQL MySQL 直接存储图片并在 html 页面中展示,点击下载 _好机友...
  8. word 中 给日文汉字标注假名 。 ( ルビ )
  9. shell脚本编程基础(三)
  10. 窗体最小化时隐藏窗体_delphi基础
  11. excel饼图按占比从大到小排列
  12. 如何在Android上查看本地空气质量指数
  13. 一木.溪桥---Python之简介、环境搭建、PyCharm配置
  14. 检测工具进阶——结合静态分析的动态分析工具论文分享
  15. Jenkins集成Sonar(3/3)- 安装SonarQube Scanner进行扫描(离线安装)
  16. 手机号86注册不了谷歌?无法验证手机号如何100%解决!
  17. M资源,每个进程最多N个资源,最多几个进程不会发生死锁
  18. 力扣OJ 剑指 Offer(1-30)
  19. ADB关闭华为系统更新
  20. 短信发送工具,便捷开发,直接拿去用

热门文章

  1. LCA——JD 3055 Nearest Common Ancestors
  2. 简简单单玩转CSS3(1)
  3. for循环加switch语句中的break与continue的用法
  4. 前端体系结构知识概括
  5. 移动安全--45--MobSF-v3.0源代码分析(一)
  6. if判断中的true和false
  7. 自动检测文本文件编码是否为GB2312(简体中文),并转换为UTF8编码,附一个GB2312全区对应的utf8编码码表
  8. 为什么要禁止除GET和POST之外的HTTP方法?
  9. 使用SQL实现广告的精准投放
  10. 剖析云计算技术及架构(计算)