Java基础day9

  • Java基础day9-ArrayList和学生管理系统
  • 1.ArrayList
    • 1.1 ArrayList类概述
    • 1.2 ArrayList类常用方法
      • 1.2.1 构造方法
      • 1.2.2 成员方法
    • 1.3ArrayList存储字符串并遍历
    • 1.4 ArrayList存储学生对象并遍历
    • 1.5 ArrayList存储学生对象并遍历升级版
  • 2.学生管理系统
    • 2.1学生管理系统实现步骤
    • 2.2学生类的定义
    • 2.3测试类的定义

Java基础day9-ArrayList和学生管理系统

1.ArrayList

1.1 ArrayList类概述

什么是集合提供一种存储空间可变的存储模型,存储的数据容量可以发生改变
ArrayList集合的特点底层是数组实现的,长度可以变化
泛型的使用用于约束集合中存储元素的数据类型

1.2 ArrayList类常用方法

1.2.1 构造方法

public ArrayList()   创建一个空的集合对象

1.2.2 成员方法

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 boolean add(E e)                 将指定的元素追加到此集合的末尾
public void add(int index,E element)    在此集合中的指定位置插入指定的元素

示例代码:

import java.util.ArrayList;
public class ArrayListdemo {public static void main(String[] args) {//创建集合ArrayList<String> array = new ArrayList<String>();array.add("hello");array.add("world");//删除元素
//        System.out.println(array.remove("hello"));System.out.println(array.remove(0));System.out.println(array.set(0,"java"));System.out.println(array.get(0));//输出System.out.println(array.size());System.out.println(array);}
}

1.3ArrayList存储字符串并遍历

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

代码实现:

/*
思路:创建集合对象往集合对象中添加字符串对象遍历集合,获取每个元素遍历集合,获取长度遍历集合通用形式
*/
public class ArrayListdemo{public static void main(String[] args) {ArrayList<String> array = new ArrayList<>();array.add("jack");array.add("rose");array.add("third");System.out.println(array.size());System.out.println(array);for(int i=0;i<array.size();i++){String s = array.get(i);System.out.println(s);}}
}

1.4 ArrayList存储学生对象并遍历

需求:创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合

代码实现:

import java.util.ArrayList;public class ArrayListdemo {public static void main(String[] args) {ArrayList<Student> array = new ArrayList<>();Student s1 = new Student("林青霞", 30);Student s2 = new Student("风清扬", 33);Student s3 = new Student("张曼玉", 18);array.add(s1);array.add(s2);array.add(s3);for (int i = 0; i < array.size(); i++) {Student s = array.get(i);System.out.println(s.getname() + s.getage());}}
}

1.5 ArrayList存储学生对象并遍历升级版

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

代码实现:

import java.util.ArrayList;
import java.util.Scanner;/*
思路:定义学生类创建集合对象键盘录入所需要的数据创建学生对象,把键盘录入的数据赋值给学生对象的成员变量往集合中添加学生对象遍历集合
*/
public class ArrayListdemo {public static void main(String[] args) {ArrayList<Student> array = new ArrayList<Student>();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());}}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);}
}

2.学生管理系统

2.1学生管理系统实现步骤

需求:
针对目前我们的所学内容,完成一个综合案例:学生管理系统!该系统主要功能如下:
添加学生:通过键盘录入学生信息,添加到集合中
删除学生:通过键盘录入要删除学生的学号,将该学生对象从集合中删除
修改学生:通过键盘录入要修改学生的学号,将该学生对象其他信息进行修改
查看学生:将集合中的学生对象信息进行展示
退出系统:结束程序实现步骤
1. 定义学生类,包含以下成员变量
private String sid // 学生id
private String name // 学生姓名
private String age // 学生年龄
private String address // 学生所在地
2. 学生管理系统主界面的搭建步骤
2.1 用输出语句完成主界面的编写 2.2 用Scanner实现键盘输入 2.3 用switch语句完成选择的功能 2.4 用
循环完成功能结束后再次回到主界面
3. 学生管理系统的添加学生功能实现步骤
3.1 定义一个方法,接收ArrayList集合 3.2 方法内完成添加学生的功能 ①键盘录入学生信息 ②根据录
入的信息创建学生对象 ③将学生对象添加到集合中 ④提示添加成功信息 3.3 在添加学生的选项里调用
添加学生的方法
4. 学生管理系统的查看学生功能实现步骤
4.1 定义一个方法,接收ArrayList集合 4.2 方法内遍历集合,将学生信息进行输出 4.3 在查看所有学生选
项里调用查看学生方法
5. 学生管理系统的删除学生功能实现步骤
5.1 定义一个方法,接收ArrayList集合 5.2 方法中接收要删除学生的学号 5.3 遍历集合,获取每个学生对
象 5.4 使用学生对象的学号和录入的要删除的学号进行比较,如果相同,则将当前学生对象从集合中删除
5.5 在删除学生选项里调用删除学生的方法
6. 学生管理系统的修改学生功能实现步骤
//创建学生对象,把键盘录入的数据赋值给学生对象的成员变量 Student s = new Student(); s.setName(name); s.setAge(age); //往集合中添加学生对象 array.add(s); } }
6.1 定义一个方法,接收ArrayList集合 6.2 方法中接收要修改学生的学号 6.3 通过键盘录入学生对象所需
的信息,并创建对象 6.4 遍历集合,获取每一个学生对象。并和录入的修改学生学号进行比较.如果相
同,则使用新学生对象替换当前学生对象 6.5 在修改学生选项里调用修改学生的方法
7. 退出系统
使用System.exit(0);退出JVM

2.2学生类的定义

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 void setSid(String sid) {this.sid = sid;}public void setName(String name) {this.name = name;}public void setAge(String age) {this.age = age;}public void setAddress(String address) {this.address = address;}public String getSid() {return sid;}public String getName() {return name;}public String getAge() {return age;}public String getAddress() {return address;}
}

2.3测试类的定义

import java.util.ArrayList;
import java.util.Scanner;public class StudentManager {public static void main(String[] args) {/*1:用输出语句完成主界面的编写2:用Scanner实现键盘录入数据3:用switch语句完成操作的选择4:用循环完成再次回到主界面*///创建集合对象,用于保存学生数据信息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 (line) {case "1":addStudent(array);break;case "2":deleteStudent(array);break;case "3":updateStudent(array);break;case "4":findAllStudent(array);break;case "5":System.out.println("谢谢使用");System.exit(0);}}}//定义添加学生信息的方法public static void addStudent(ArrayList<Student> array) {//键盘录入学生信息Scanner sc = new Scanner(System.in);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中去array.add(s);System.out.println("添加学生信息成功");}public static boolean isUsed(ArrayList<Student> array, String sid) {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 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)) {index = 1;break;}}if (index == -1) {System.out.println("你输入的学号不存在,请重新输入");} else {array.remove(index);System.out.println("删除成功");}}//定义方法修改学生信息public static void updateStudent(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.setName(name);s.setAge(age);s.setAddress(address);//遍历集合修改对应信息for (int i = 0; i < array.size(); i++) {Student student = array.get(i);if (array.get(i).getSid().equals(sid)) {array.set(i, s);}}System.out.println("修改学生信息成功");}//定义方法查看学生信息public static void findAllStudent(ArrayList<Student> array) {//判断集合中是否有数据,如果没有显示提示信息if (array.size() == 0) {System.out.println("无信息");return;}System.out.println("学号\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\t" + s.getAddress());}}}

Java基础day9相关推荐

  1. Java 基础学习记录

    Java 基础 DAY1 1.关于进制的运算 2.关于存储单元 3.关于CMD的基本命令 4.JRE与JDK 5.Java环境变量 6.程序开发步骤 7.HelloWorld 8.标识符 9.常量 1 ...

  2. Java基础入门语法和安装

    1. Java概述 1.1 Java语言背景介绍(了解) 语言:人与人交流沟通的表达方式 计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言 Java语言是美国Sun公司(Stanford Un ...

  3. Java笔记整理-02.Java基础语法

    1,标识符 由英文字母.数字._(下划线)和$组成,长度不限.其中英文字母包含大写字母(A-Z)和小写字母(a-z),数字包含0到9. 标识符的第一个字符不能是数字(即标识符不能以数字开头). 标识符 ...

  4. java基础(十三)-----详解内部类——Java高级开发必须懂的

    java基础(十三)-----详解内部类--Java高级开发必须懂的 目录 为什么要使用内部类 内部类基础 静态内部类 成员内部类 成员内部类的对象创建 继承成员内部类 局部内部类 推荐博客 匿名内部 ...

  5. Java基础概念性的知识总结

    属于个人的所学的知识总结,不是全面的 1.JDK.JRE和JVM三者的区别 01.JDK:(Java Development ToolKit)Java开发工具包,是整个Java的核心.包括了Java的 ...

  6. 我的面试标准:第一能干活,第二Java基础要好,第三最好熟悉些分布式框架!...

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:hsm_computer www.cnblogs.com/J ...

  7. 叮!您收到一份超值Java基础入门资料!

    摘要:Java语言有什么特点?如何最大效率的学习?深浅拷贝到底有何区别?阿里巴巴高级开发工程师为大家带来Java系统解读,带你掌握Java技术要领,突破重点难点,入门面向对象编程,以详细示例带领大家J ...

  8. java重要基础知识点_必看 | 新人必看的Java基础知识点大梳理

    原标题:必看 | 新人必看的Java基础知识点大梳理 各位正在认真苦学Java的准大神,在这烈日炎炎的夏季里,老九君准备给大家带来一个超级大的"冰镇西瓜,"给大家清凉一下,压压惊. ...

  9. Java基础-Date类常用方法介绍

    Java基础-Date类常用方法介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.毫秒值概念 我们在查阅Date类的API文档时,会发现这样的一句话:"The cl ...

最新文章

  1. 01 python爬虫
  2. ADSL参数BITSWAP作用
  3. 网易云摸到了大象灵巧的鼻子
  4. UOS LoongArch 上成功安装.NET Core 3.1
  5. 餐馆的故事-浅析职责链模式
  6. ASP.NET 4.0升级至ASP.NET 4.5需要注意的地方
  7. Mac OS开发—Xcode给Mac应用添加编辑快捷键(剪切 复制 粘贴 全选 删除 撤销 重做)功能
  8. python对abaqus本构二次开发_基于Python的Abaqus二次开发实例讲解
  9. oracle人才盘点演示,Oracle 11g Golden Gate DDL单向同步实例演示
  10. 如何将整个splitcontainer控件缩小_将绣球花养成花球,整个夏天都是花团锦簇,教你如何将它调成蓝色...
  11. 树形DP+DFS序+树状数组 HDOJ 5293 Tree chain problem(树链问题)
  12. apulSoft apShaper for Mac(滤波失真插件)
  13. 微信小程序报 47001 - data format error hint
  14. win10计算机网络共享设置密码,win10局域网设置密码如何设置_win10局域网怎么设置访问密码-win7之家...
  15. 4874: 筐子放球
  16. 蜗居中折射的三类男人
  17. 计算机网络基础以及进程查看管理
  18. 小程序wx.downloadFile下载pdf并保存
  19. 《失业的程序员》(十五):商业头脑
  20. Logic Pro X自带音色库列表

热门文章

  1. 抖音很火的存钱计划,让python告诉你总共可以存到多少钱!
  2. 【2018.10.20】noip模拟赛Day3 二阶和
  3. Mac 安装Fiddler 抓包工具
  4. 报错 findMergedAnnotation activemq
  5. UVA-1515 Pool construction (最小割)
  6. Register-SPWorkflowService 远程服务器返回错误: (404) 未找到
  7. poj 1061 (扩展欧几里德算法)
  8. 【☆】javascript数据类型拾遗
  9. 转:亿级Web系统的高容错性实践(好博文)
  10. 考试系统(未完成的小程序)