Java09-day09【ArrayList(概述、构造方法、常用方法、遍历)、简易学生管理系统】
- java零基礎(chǔ)入門到精通(2019版)【黑馬程序員】
- 視頻+資料:【鏈接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg? ?提取碼:zjxs】
- “Java基礎(chǔ)”專欄
- Java基礎(chǔ)--學(xué)習(xí)筆記(零起點打開java世界的大門)--博客匯總表
目? ?錄
134_ArrayList
1.1、集合概述
135_ArrayList構(gòu)造和添加
1.2、ArrayList構(gòu)造方法和添加方法
136_ArrayList常用方法
1.3、ArrayList常用方法
136_ArrayList存儲字符串并遍歷
137_ArrayList存儲學(xué)生對象并遍歷
138_ArrayList存儲學(xué)生對象并遍歷升級版
139_學(xué)生管理系統(tǒng)項目演示
1.1、項目演示
140_學(xué)生管理系統(tǒng)之學(xué)生類
1.2、學(xué)生管理系統(tǒng)實現(xiàn)思路
1.3、定義學(xué)生類
141_學(xué)生管理系統(tǒng)之主界面
1.4、主界面的代碼編寫
142_學(xué)生管理系統(tǒng)之添加學(xué)生
1.5、添加學(xué)生的代碼編寫
143_學(xué)生管理系統(tǒng)之查看所有學(xué)生
1.6、查看學(xué)生的代碼編寫
144_學(xué)生管理系統(tǒng)之查看所有學(xué)生升級版
1.7、查看學(xué)生的代碼編寫升級版
145_學(xué)生管理系統(tǒng)之刪除學(xué)生
1.8、刪除學(xué)生的代碼編寫
146_學(xué)生管理系統(tǒng)之修改學(xué)生
1.9、修改學(xué)生的代碼編寫
147_學(xué)生管理系統(tǒng)之學(xué)號不存在問題
1.10、解決 刪除/修改 學(xué)生 學(xué)號不存在問題
148_學(xué)生管理系統(tǒng)之學(xué)號重復(fù)問題
1.11、解決添加學(xué)生學(xué)號重復(fù)問題
簡易學(xué)生管理系統(tǒng)
1、實現(xiàn)步驟
1.1、案例需求
1.2、實現(xiàn)步驟
2、代碼匯總
2.1、Student.java
2.2、StudentManager.java
3、運行截圖
134_ArrayList
1.1、集合概述
編程的時候如果要存儲多個數(shù)據(jù),
使用長度固定的數(shù)組存儲格式,不一定滿足我們的需求,更適應(yīng)不了變化的需求,那么,此時該如何選擇呢?【集合】
什么是集合?
- 提供一種存儲空間可變的存儲模型,存儲的數(shù)據(jù)容量可以發(fā)生改變。
ArrayList<E>集合的特點:
- 可調(diào)整大小的數(shù)組實現(xiàn)(底層是數(shù)組實現(xiàn)的,長度可以變化)。
- <E>:是一種特殊的數(shù)據(jù)類型,泛型。
泛型的使用:
- 在出現(xiàn)E的地方,使用引用數(shù)據(jù)類型替換即可(用于約束集合中存儲元素的數(shù)據(jù)類型)。
- 舉例:ArrayList<String>、ArrayList<Student>
135_ArrayList構(gòu)造和添加
1.2、ArrayList構(gòu)造方法和添加方法
JDK版本:jdk1.8.0_201
136_ArrayList常用方法
1.3、ArrayList常用方法
136_ArrayList存儲字符串并遍歷
137_ArrayList存儲學(xué)生對象并遍歷
138_ArrayList存儲學(xué)生對象并遍歷升級版
集合:引用類型
?
139_學(xué)生管理系統(tǒng)項目演示
1.1、項目演示
140_學(xué)生管理系統(tǒng)之學(xué)生類
1.2、學(xué)生管理系統(tǒng)實現(xiàn)思路
1.3、定義學(xué)生類
Alt+Insert? 快捷鍵? ?快速生成“構(gòu)造方法、getter()方法、setter()方法”
141_學(xué)生管理系統(tǒng)之主界面
1.4、主界面的代碼編寫
System.exit(0); // JVM退出
142_學(xué)生管理系統(tǒng)之添加學(xué)生
1.5、添加學(xué)生的代碼編寫
143_學(xué)生管理系統(tǒng)之查看所有學(xué)生
1.6、查看學(xué)生的代碼編寫
144_學(xué)生管理系統(tǒng)之查看所有學(xué)生升級版
1.7、查看學(xué)生的代碼編寫升級版
?
145_學(xué)生管理系統(tǒng)之刪除學(xué)生
1.8、刪除學(xué)生的代碼編寫
146_學(xué)生管理系統(tǒng)之修改學(xué)生
1.9、修改學(xué)生的代碼編寫
147_學(xué)生管理系統(tǒng)之學(xué)號不存在問題
1.10、解決 刪除/修改 學(xué)生 學(xué)號不存在問題
148_學(xué)生管理系統(tǒng)之學(xué)號重復(fù)問題
1.11、解決添加學(xué)生學(xué)號重復(fù)問題
簡易學(xué)生管理系統(tǒng)
1、實現(xiàn)步驟
1.1、案例需求
針對目前的所學(xué)內(nèi)容,完成一個綜合案例:學(xué)生管理系統(tǒng)!該系統(tǒng)主要功能如下:
1.2、實現(xiàn)步驟
1. 定義學(xué)生類,包含以下成員變量
2. 學(xué)生管理系統(tǒng)主界面的搭建步驟
- 2.1 用輸出語句完成主界面的編寫
- 2.2 用Scanner實現(xiàn)鍵盤輸入
- 2.3 用switch語句完成選擇的功能
- 2.4 用循環(huán)完成功能結(jié)束后,再次回到主界面
3. 學(xué)生管理系統(tǒng)的添加學(xué)生功能實現(xiàn)步驟
- 3.1 定義一個方法,接收ArrayList集合
- 3.2 方法內(nèi)完成添加學(xué)生的功能
? ? ? ? ? ? ?①鍵盤錄入學(xué)生信息
? ? ? ? ? ? ?②根據(jù)錄入的信息創(chuàng)建學(xué)生對象
? ? ? ? ? ? ?③將學(xué)生對象添加到集合中
? ? ? ? ? ? ?④提示添加成功信息
- 3.3 在添加學(xué)生的選項里調(diào)用添加學(xué)生的方法
4. 學(xué)生管理系統(tǒng)的查看學(xué)生功能實現(xiàn)步驟
- 4.1 定義一個方法,接收ArrayList集合
- 4.2 方法內(nèi)遍歷集合,將學(xué)生信息進(jìn)行輸出
- 4.3 在查看所有學(xué)生選項里調(diào)用查看學(xué)生方法
5. 學(xué)生管理系統(tǒng)的刪除學(xué)生功能實現(xiàn)步驟
- 5.1 定義一個方法,接收ArrayList集合
- 5.2 方法中接收要刪除學(xué)生的學(xué)號
- 5.3 遍歷集合,獲取每個學(xué)生對象
- 5.4 使用學(xué)生對象的學(xué)號和錄入的要刪除的學(xué)號進(jìn)行比較,如果相同,則將當(dāng)前學(xué)生對象從集合中刪除
- 5.5 在刪除學(xué)生選項里調(diào)用刪除學(xué)生的方法
6. 學(xué)生管理系統(tǒng)的修改學(xué)生功能實現(xiàn)步驟
- 6.1 定義一個方法,接收ArrayList集合
- 6.2 方法中接收要修改學(xué)生的學(xué)號
- 6.3 通過鍵盤錄入學(xué)生對象所需的信息,并創(chuàng)建對象
- 6.4 遍歷集合,獲取每一個學(xué)生對象。并和錄入的修改學(xué)生學(xué)號進(jìn)行比較,如果相同,則使用新學(xué)生對象替換當(dāng)前學(xué)生對象
- 6.5 在修改學(xué)生選項里調(diào)用修改學(xué)生的方法
7. 退出系統(tǒng)
- 使用System.exit(0); // 退出JVM
2、代碼匯總
2.1、Student.java
package com.itheima;/*學(xué)生類Alt+Insert 根據(jù)自己的需要進(jìn)行選擇*/ public class Student {//學(xué)號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;} }2.2、StudentManager.java
package com.itheima;import java.util.ArrayList; import java.util.Scanner;/*學(xué)生管理系統(tǒng)*/ public class StudentManager {public static void main(String[] args) {//創(chuàng)建集合對象,用于存儲學(xué)生數(shù)據(jù)ArrayList<Student> array = new ArrayList<Student>();//用循環(huán)完成再次回到主界面while (true) {//用輸出語句完成主界面的編寫System.out.println("--------歡迎來到學(xué)生管理系統(tǒng)--------");System.out.println("1 添加學(xué)生");System.out.println("2 刪除學(xué)生");System.out.println("3 修改學(xué)生");System.out.println("4 查看所有學(xué)生");System.out.println("5 退出");System.out.println("請輸入你的選擇:");//用Scanner實現(xiàn)鍵盤錄入數(shù)據(jù)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("修改學(xué)生");updateStudent(array);break;case "4":findAllStudent(array);break;case "5":System.out.println("謝謝使用");System.exit(0); // JVM退出}}}//定義一個方法,用于添加學(xué)生信息/*public static void addStudent(ArrayList<Student> array) {//鍵盤錄入學(xué)生對象所需要的數(shù)據(jù),顯示提示信息,提示要輸入何種信息Scanner sc = new Scanner(System.in);System.out.println("請輸入學(xué)生學(xué)號:");String sid = sc.nextLine();System.out.println("請輸入學(xué)生姓名:");String name = sc.nextLine();System.out.println("請輸入學(xué)生年齡:");String age = sc.nextLine();System.out.println("請輸入學(xué)生居住地:");String address = sc.nextLine();//創(chuàng)建學(xué)生對象,把鍵盤錄入的數(shù)據(jù)賦值給學(xué)生對象的成員變量Student s = new Student();s.setSid(sid);s.setName(name);s.setAge(age);s.setAddress(address);//將學(xué)生對象添加到集合中array.add(s);//給出添加成功提示System.out.println("添加學(xué)生成功");}*/public static void addStudent(ArrayList<Student> array) {//鍵盤錄入學(xué)生對象所需要的數(shù)據(jù),顯示提示信息,提示要輸入何種信息Scanner sc = new Scanner(System.in);//為了讓sid在while循環(huán)外面被訪問到,我們就把它定義在了循環(huán)外String sid;//為了讓程序能夠回到這里,我們使用循環(huán)實現(xiàn)while (true) {System.out.println("請輸入學(xué)生學(xué)號:");sid = sc.nextLine();boolean flag = isUsed(array, sid);if (flag) {System.out.println("你輸入的學(xué)號已經(jīng)被使用,請重新輸入");} else {break;}}System.out.println("請輸入學(xué)生姓名:");String name = sc.nextLine();System.out.println("請輸入學(xué)生年齡:");String age = sc.nextLine();System.out.println("請輸入學(xué)生居住地:");String address = sc.nextLine();//創(chuàng)建學(xué)生對象,把鍵盤錄入的數(shù)據(jù)賦值給學(xué)生對象的成員變量Student s = new Student();s.setSid(sid);s.setName(name);s.setAge(age);s.setAddress(address);//將學(xué)生對象添加到集合中array.add(s);//給出添加成功提示System.out.println("添加學(xué)生成功");}//定義一個方法,判斷學(xué)號是否被使用public static boolean isUsed(ArrayList<Student> array, String sid) {//如果與集合中的某一個學(xué)生學(xué)號相同,返回true;如果都不相同,返回falseboolean 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;}//定義一個方法,用于查看學(xué)生信息/*public static void findAllStudent(ArrayList<Student> array) {//顯示表頭信息//\t 其實就是tab鍵的位置System.out.println("學(xué)號\t\t\t姓名\t\t年齡\t\t居住地");//將集合中數(shù)據(jù)取出按照對應(yīng)格式顯示學(xué)生信息,年齡顯示補充“歲”for (int i = 0; i < array.size(); i++) {Student s = array.get(i);System.out.println(s.getSid() + "\t" + s.getName() + "\t" + s.getAge() + "歲\t\t" + s.getAddress());}}*/public static void findAllStudent(ArrayList<Student> array) {//判斷集合中是否有數(shù)據(jù),如果沒有顯示提示信息if (array.size() == 0) {System.out.println("無信息,請先添加信息再查詢");//為了讓程序不在往下執(zhí)行,給出return;return;}//顯示表頭信息//\t 其實就是tab鍵的位置System.out.println("學(xué)號\t\t\t姓名\t\t年齡\t\t居住地");//將集合中數(shù)據(jù)取出按照對應(yīng)格式顯示學(xué)生信息,年齡顯示補充“歲”for (int i = 0; i < array.size(); i++) {Student s = array.get(i);System.out.println(s.getSid() + "\t" + s.getName() + "\t" + s.getAge() + "歲\t\t" + s.getAddress());}}//定義一個方法,用于刪除學(xué)生信息/*public static void deleteStudent(ArrayList<Student> array) {//鍵盤錄入要刪除的學(xué)生學(xué)號,顯示提示信息Scanner sc = new Scanner(System.in);System.out.println("請輸入你要刪除的學(xué)生的學(xué)號:");String sid = sc.nextLine();//遍歷集合將對應(yīng)學(xué)生對象從集合中刪除for(int i=0; i<array.size(); i++) {Student s = array.get(i);if(s.getSid().equals(sid)) {array.remove(i);break;}}//給出刪除成功提示System.out.println("刪除學(xué)生成功");}*/public static void deleteStudent(ArrayList<Student> array) {//鍵盤錄入要刪除的學(xué)生學(xué)號,顯示提示信息Scanner sc = new Scanner(System.in);System.out.println("請輸入你要刪除的學(xué)生的學(xué)號:");String sid = sc.nextLine();//在刪除/修改學(xué)生操作前,對學(xué)號是否存在進(jìn)行判斷//如果不存在,顯示提示信息//如果存在,執(zhí)行刪除/修改操作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("刪除學(xué)生成功");}}//定義一個方法,用于修改學(xué)生信息public static void updateStudent(ArrayList<Student> array) {//鍵盤錄入要修改的學(xué)生學(xué)號,顯示提示信息Scanner sc = new Scanner(System.in);System.out.println("請輸入你要修改的學(xué)生的學(xué)號:");String sid = sc.nextLine();//鍵盤錄入要修改的學(xué)生信息System.out.println("請輸入學(xué)生新姓名:");String name = sc.nextLine();System.out.println("請輸入學(xué)生新年齡:");String age = sc.nextLine();System.out.println("請輸入學(xué)生新居住地:");String address = sc.nextLine();//創(chuàng)建學(xué)生對象Student s = new Student();s.setSid(sid);s.setName(name);s.setAge(age);s.setAddress(address);//遍歷集合修改對應(yīng)的學(xué)生信息for (int i = 0; i < array.size(); i++) {Student student = array.get(i);if (student.getSid().equals(sid)) {array.set(i, s);break;}}//給出修改成功提示System.out.println("修改學(xué)生成功");} }3、運行截圖
總結(jié)
以上是生活随笔為你收集整理的Java09-day09【ArrayList(概述、构造方法、常用方法、遍历)、简易学生管理系统】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java08-day08【API(概述、
- 下一篇: 嵌入式之NB-IoT开发与应用01【移动