9、ArrayList集合完成學生管理系統
文章目錄
1. ArrayList類常用方法
1.1 構造方法
1.2 成員方法
2. ArrayList儲存字串並遍歷
案例需求:
建立一個儲存字串的集合,儲存3個字串元素,使用程式實現在控制檯遍歷該集合
程式碼實現:
import java.util.ArrayList;
/*
思路:
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);
}
}
}
3. ArrayList儲存學生物件並遍歷
需求:
建立一個儲存學生物件的集合,儲存3個學生物件,使用程式實現在控制檯遍歷該集合
程式碼實現:
import java.util.ArrayList;
/*
思路:
1:定義學生類
2:建立集合物件
3:建立學生物件
4:新增學生物件到集合中
5:遍歷集合,採用通用遍歷格式實現
*/
public class ArrayListTest02 {
public static void main(String[] args) {
//建立集合物件
ArrayList<Student> array = new ArrayList<Student>();
//建立學生物件
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());
}
}
}
4. ArrayList儲存學生物件並遍歷升級版
需求:建立一個儲存學生物件的集合,儲存3個學生物件,使用程式實現在控制檯遍歷該集合
學生的姓名和年齡來自於鍵盤錄入
學生類:
public class Student {
/*
學生類
為了鍵盤錄入資料方便,把學生類中的成員變數都定義為String型別
*/
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;
/*
思路:
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);
}
}
5. 學生管理系統
5.1 案例需求
案例需求 :
針對目前我們的所學內容,完成一個綜合案例:學生管理系統!該系統主要功能如下:
新增學生:通過鍵盤錄入學生資訊,新增到集合中
刪除學生:通過鍵盤錄入要刪除學生的學號,將該學生物件從集合中刪除
修改學生:通過鍵盤錄入要修改學生的學號,將該學生物件其他資訊進行修改
檢視學生:將集合中的學生物件資訊進行展示
退出系統:結束程式
5.2 實現步驟
- 定義學生類,包含以下成員變數 private String sid // 學生id private String name // 學生姓名 private String age // 學生年齡 private String address // 學生所在地
- 學生管理系統主介面的搭建步驟
2.1 用輸出語句完成主介面的編寫 2.2 用Scanner實現鍵盤輸入 2.3 用switch語句完成選擇的功能 2.4 用 迴圈完成功能結束後再次回到主介面- 學生管理系統的新增學生功能實現步驟
3.1 定義一個方法,接收ArrayList集合 3.2 方法內完成新增學生的功能 ①鍵盤錄入學生資訊 ②根據錄 入的資訊建立學生物件 ③將學生物件新增到集合中 ④提示新增成功資訊 3.3 在新增學生的選項裡呼叫 新增學生的方法- 學生管理系統的檢視學生功能實現步驟
4.1 定義一個方法,接收ArrayList集合 4.2 方法內遍歷集合,將學生資訊進行輸出 4.3 在檢視所有學生選 項裡呼叫檢視學生方法- 學生管理系統的刪除學生功能實現步驟
5.1 定義一個方法,接收ArrayList集合 5.2 方法中接收要刪除學生的學號 5.3 遍歷集合,獲取每個學生對 象 5.4 使用學生物件的學號和錄入的要刪除的學號進行比較,如果相同,則將當前學生物件從集合中刪除
5.5 在刪除學生選項裡呼叫刪除學生的方法- 學生管理系統的修改學生功能實現步驟 //建立學生物件,把鍵盤錄入的資料賦值給學生物件的成員變數 Student s = new Student(); s.setName(name); s.setAge(age); //往集合中新增學生物件 array.add(s);
} }
6.1 定義一個方法,接收ArrayList集合 6.2 方法中接收要修改學生的學號 6.3 通過鍵盤錄入學生物件所需 的資訊,並建立物件 6.4 遍歷集合,獲取每一個學生物件。並和錄入的修改學生學號進行比較.如果相 同,則使用新學生物件替換當前學生物件 6.5 在修改學生選項裡呼叫修改學生的方法- 退出系統 使用System.exit(0);退出JVM
5.3 實現程式碼
學生類:
/*
學生類
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;
}
}
測試類:
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);
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);
//將學生物件新增到集合中
array.add(s);
//給出新增成功提示
System.out.println("新增學生成功");
}
*/
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) {
//顯示錶頭資訊
//\t 其實就是tab鍵的位置
System.out.println("學號\t\t\t姓名\t\t年齡\t\t居住地");
//將集合中資料取出按照對應格式顯示學生資訊,年齡顯示補充“歲”
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) {
//判斷集合中是否有資料,如果沒有顯示提示資訊
if (array.size() == 0) {
System.out.println("無資訊,請先新增資訊再查詢");
//為了讓程式不在往下執行,給出return;
return;
}
//顯示錶頭資訊
//\t 其實就是tab鍵的位置
System.out.println("學號\t\t\t姓名\t\t年齡\t\t居住地");
//將集合中資料取出按照對應格式顯示學生資訊,年齡顯示補充“歲”
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 deleteStudent(ArrayList<Student> array) {
//鍵盤錄入要刪除的學生學號,顯示提示資訊
Scanner sc = new Scanner(System.in);
System.out.println("請輸入你要刪除的學生的學號:");
String sid = sc.nextLine();
//遍歷集合將對應學生物件從集合中刪除
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("刪除學生成功");
}
*/
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("刪除學生成功");
}
}
//定義一個方法,用於修改學生資訊
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 (student.getSid().equals(sid)) {
array.set(i, s);
break;
}
}
//給出修改成功提示
System.out.println("修改學生成功");
}
}
相關文章
- (十)ArrayList&&學生管理系統
- day09 集合基礎、學生管理系統
- 學生管理系統
- 學生管理系統(springMVC)SpringMVC
- JAVA學生宿舍管理系統Java
- 【C++】學生管理系統C++
- 學生管理系統程式碼
- 學生學籍管理系統~~功能介面
- 學生選題資訊管理系統
- 8、用java的ArrayList集合完成模擬鬥地主案例Java
- Django練習-學生管理系統案例Django
- Python簡易學生管理系統Python
- 學生管理系統 四色原型原型
- Java集合——ArrayListJava
- JAVA集合-ArrayListJava
- Java集合原始碼學習(2)ArrayListJava原始碼
- java集合學習(一):詳解ArrayListJava
- 集合框架原始碼學習之ArrayList框架原始碼
- C語言學生管理系統原始碼C語言原始碼
- 學生管理系統java簡單實現Java
- Java 集合之ArrayListJava
- Java集合之ArrayListJava
- 【Java集合】2 ArrayListJava
- Java集合(一) —— ArrayListJava
- 【java】【集合】去除ArrayList中的元素、ArrayList巢狀ArrayListJava巢狀
- C++實現控制檯學生學籍管理系統C++
- 集合-ArrayList 原始碼解析原始碼
- 集合框架2- ArrayList框架
- Java集合框架(一)-ArrayListJava框架
- ArrayList集合底層原理
- Java 集合框架(二)—— ArrayListJava框架
- 圖解集合1:ArrayList圖解
- 【C語言課程設計】學生學籍管理系統C語言
- 順通高校學生網上選課管理系統
- 非生產系統如何完成精益轉型?
- Java集合 ArrayList原理及使用Java
- 【Java集合】ArrayList原始碼分析Java原始碼
- Java Collection介面 ArrayList集合(容器)Java