day09 集合基礎、學生管理系統
day09 集合基礎、學生管理系統
1.1 集合概述
可以儲存多個資料的容器
陣列和集合的異同
陣列 | 集合 |
---|---|
可以儲存多個資料 | 可以儲存多個資料 |
長度是固定的 | 長度不固定 |
可以儲存基本資料型別,也可以儲存引用資料型別 | 只能儲存引用資料型別 |
- 泛型的使用
< E>:就是指定集合儲存的資料型別
< Student>:學生類
< int> ❌ 不能引用基本資料型別
1.2ArrayList構造方法和新增方法
增刪改查、獲取集合長度、遍歷集合
語句 | 說明 |
---|---|
public ArrayList< E >() | 建立一個新的集合 |
public boolean add(E,e) | 在集合裡新增元素 |
public boolean add(index i ,E e) | 在集合index位置加入元素 |
public boolean remove(Object o) | 刪除集合中指定元素 |
public E remove(index) | 刪除集合index位置的元素 |
public boolean set(index i,E e) | 修改集合中index位置的元素為e |
public E get(index i) | 得到集合中index位置的元素 |
public int ArrayList.size() | 獲取集合長度 |
實現程式碼
public class ArrayListDemo01 {
public static void main(String[] args) {
//建立一個集合
ArrayList<String> list = new ArrayList<>();
//增加集合
list.add("老童最可愛");
list.add("老童最可愛");
list.add("老童最可愛");
list.add("老張不可愛");
list.add(1,"老張不可愛");
System.out.println(list);
System.out.println(list.get(0));
//刪除集合
list.remove("老張不可愛");//注意:每次只能刪一個
System.out.println(list);
//修改集合
list.set(0,"老童不僅可愛還漂亮");
System.out.println(list);
//查詢集合
System.out.println(list.get(0));
//獲取集合的長度
System.out.println(list.size());
//遍歷集合
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
}
執行結果
1.3集合儲存物件
建立物件Student,定義名字和年齡,建立有參和無參構造方法
新建測試類
1、建立學生集合
2、通過有參構造方法往集合裡面新增學生物件
3、通過鍵盤錄入新增學生物件
4、遍歷輸出
實現程式碼
public class ArrayListDemo02 {
public static void main(String[] args) {
//建立學生集合
ArrayList<Student> s = new ArrayList<>();
//往學生集合裡面新增物件
s.add(new Student("老童",18));
s.add(new Student("老張",22));
//通過鍵盤錄入新增學生物件
System.out.println("請輸入學生姓名和年齡");
s.add(new Student(new Scanner(System.in).nextLine(),new Scanner(System.in).nextInt()));
//遍歷輸出
for (int i = 0; i < s.size(); i++) {
System.out.println("學生姓名:"+s.get(i).getName()+" 年齡:"+s.get(i).getAge());
}
}
}
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;
}
}
執行結果
學生管理系統
- 案例需求
- 學生管理系統主要功能如下:
- 新增學生:通過鍵盤錄入學生資訊,新增到集合中
- 刪除學生:通過鍵盤錄入要刪除的學生學號,將該學生物件從集合中刪除
- 修改學生:通過鍵盤錄入要修改學生的學號,將該學生物件其他資訊進行修改
- 檢視學生:將集合中的學生物件資訊進行展示
- 實現步驟
-
定義學生類,包含以下成員變數
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方法內完成新增學生的功能
1、鍵盤錄入學生資訊
2、根據錄入的資訊建立學生物件
3、將學生物件新增到集合中 -
學生管理系統的刪除學生功能實現步驟
1、鍵入要刪除的學生物件id
2、將對應id的學生資訊進行刪除
3、若無對應id,則輸出“查無此學生資訊,刪除失敗” -
學生管理系統的修改學生功能實現步驟
1、鍵入要修改的學生物件id
2、將對應id的學生資訊進行修改(此處加一個switch語句來選擇要修改的學生資訊種類)
3、若無對應id,則輸出“查無此學生資訊,修改失敗” -
學生管理系統的檢視學生功能實現步驟
通過for迴圈將集合中所有學生資訊列印出來 -
利用系統命令System.exit(0)退出學生管理系統
- 學生管理系統原始碼
public class StudentTest {
public static void main(String[] args) {
ArrayList<Student> list = new ArrayList<>();
//主介面顯示
show();
Scanner sc = new Scanner(System.in);
while (true) {
String line = sc.nextLine();
chose(line, list);
show();
}
}
public static void chose(String line, ArrayList list) {
//Switch進行選擇
switch (line) {
case "1":
System.out.println("新增學生");
addStuent(list);
break;
case "2":
System.out.println("刪除學生");
delStudent(list);
break;
case "3":
System.out.println("修改學生");
modifyStudent(list);
break;
case "4":
System.out.println("檢視所有學生");
showStudent(list);
break;
case "5":
System.out.println("謝謝使用");
System.exit(0);//JVM退出
default:
System.out.println("您輸入的數字無效");
break;
}
}
public static void addStuent(ArrayList<Student> list) {
Scanner sc = new Scanner(System.in);
if (list.size() > 0) {
System.out.println("請輸入學生的id:");
String sid = sc.nextLine();
for (int i = 0; i < list.size(); i++) {
Student obj = (Student) list.get(i);
if (obj.getSid().equals(sid)) {
System.out.println("學生id重複,增加失敗!");
}
else {
System.out.println("請輸入學生的姓名、年齡、居住地址");
list.add(new Student(sid, sc.nextLine(), sc.nextLine(), sc.nextLine()));
System.out.println("學生資訊新增成功!");
break;
}
}
} else {
System.out.println("請輸入學生的id、姓名、年齡、居住地址");
list.add(new Student(sc.nextLine(), sc.nextLine(), sc.nextLine(), sc.nextLine()));
}
}
private static void delStudent(ArrayList list) {
System.out.println("請輸入需要刪除資訊的學生的id");
Scanner sc = new Scanner(System.in);
String sid = sc.nextLine();
for (int i = 0; i < list.size(); i++) {
Student obj = (Student) list.get(i);
System.out.println(obj.getSid());
if (obj.getSid().equals(sid)) {
//進行刪除
list.remove(i);
System.out.println("學生資訊刪除成功");
} else
System.out.println("查無此學生資訊,刪除失敗");
}
}
private static void modifyStudent(ArrayList list) {
System.out.println("請輸入要修改資訊的學生的id");
Scanner sc = new Scanner(System.in);
String sid = sc.nextLine();
for (int i = 0; i < list.size(); i++) {
Student obj = (Student) list.get(i);
if (obj.getSid().equals(sid)) {
modifyShow();
String line = sc.nextLine();
switch (line) {
case "1":
System.out.println("請輸入要修改的學生姓名");
obj.setName(sc.nextLine());
System.out.println("學生姓名修改成功!");
break;
case "2":
System.out.println("請輸入要修改的學生年齡");
obj.setAge(sc.nextLine());
System.out.println("學生年齡修改成功!");
break;
case "3":
System.out.println("請輸入要修改的學生住址");
obj.setAge(sc.nextLine());
System.out.println("學生住址修改成功!");
break;
default:
System.out.println("輸入的數字有誤!");
break;
}
} else
System.out.println("查無此學學生id!");
}
}
public static void showStudent(ArrayList<Student> list) {
System.out.println("==========學生資訊========");
for (Student stu : list) {
System.out.println("學生id:" + stu.getSid() + " 學生姓名:" + stu.getName() + " 學生年齡:" + stu.getAge() + " 學生地址:" + stu.getAddress());
}
}
private static void modifyShow() {
System.out.println("=======學生資訊修改========");
System.out.println("請輸入要修改資訊的序號:");
System.out.println("1 學生姓名");
System.out.println("2 學生年齡");
System.out.println("3 學生住址");
}
public static void show() {
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("請輸入要進行的操作:");
return;
}
}
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;
}
}
- 執行結果
Memorial Day is 393 days |
相關文章
- 9、ArrayList集合完成學生管理系統
- Java 學生管理系統(MVC)開源原始碼(基礎版)JavaMVC原始碼
- Python學生資訊管理系統-簡易版(Python基礎)Python
- 學生管理系統
- 基於php學生資訊管理系統PHP
- 傳智黑馬python基礎學習——day09Python
- 學生管理系統(springMVC)SpringMVC
- python基礎(16):學生資訊管理系統——Python編寫(附全部程式碼)Python
- 【C++】學生管理系統C++
- JAVA學生宿舍管理系統Java
- (十)ArrayList&&學生管理系統
- Python簡易學生管理系統Python
- 基於陣列的學生管理系統【C語言版】陣列C語言
- Dart基礎系統學習Dart
- Linux系統基礎學習Linux
- linux核心基礎-系統服務管理Linux
- Django練習-學生管理系統案例Django
- 學生選題資訊管理系統
- 學生資訊管理系統用例
- C語言學生管理系統原始碼C語言原始碼
- Java簡單學生資訊管理系統Java
- 基於“結構體”實現簡易版學生管理系統(Golang)結構體Golang
- 學習python的基礎語法集合Python
- 某學校的學生資訊管理系統網站網站
- C++實現控制檯學生學籍管理系統C++
- 【學習】SQL基礎-008-集合運算子SQL
- 系統學習 TypeScript(三)——基礎型別TypeScript型別
- Java基礎-集合框架Java框架
- Java基礎 —— 集合(二)Java
- Rails 實戰——圖書管理系統——基礎建設AI
- [Python急救站]簡單的學生管理系統Python
- 順通高校學生網上選課管理系統
- linux系統基礎Linux
- java+SQL做學生資訊管理系統(增刪改查)學生新作JavaSQL
- 基於jsp學生資訊管理系統的設計與實現(含原始檔)JS
- 基於java的大學生健康資訊管理系統的設計與實現Java
- 基於ThinkPHP框架開發的響應式學生資訊後臺管理系統PHP框架
- 實踐 | MES系統之裝置管理的基礎功能