(十)ArrayList&&學生管理系統
集合基礎
一、集合
1)集合概述:程式設計的時候如果要儲存多個資料,使用長度固定的陣列儲存格式,不一定滿足我們的需求,更適應不了變化的需求,此時就應該選擇集合
2)集合類的特點:提供一種儲存空間可變的儲存模型,儲存的資料容量可以改變
3)ArrayList<E>
:可調整大小的陣列實現;是一種特殊的資料型別,叫泛型,在出現E的地方使用引用資料型別替換即可,如ArrayList<String>,ArrayList<Student>
4)ArrayList構造方法和新增方法
方法名 | 說明 |
---|---|
public ArrayList() | 建立一個空的集合物件 |
public boolean add(E e) | 將指定的元素追加到此集合的末尾 |
public void add(int index, E element) | 在此集合中的指定位置插入指定元素 |
範例:
package ArrayListTest;
import java.util.ArrayList;
public class ArrayListTest {
public static void main(String[] args) {
//ArrayList構造方法
//建立一個空的集合物件
ArrayList<String> array = new ArrayList<String>();//表示該集合中儲存的是String型別
//輸出集合
System.out.println("array:"+array);
//將指定元素追加到此集合的末尾
array.add("Hello");
System.out.println("array:"+array);
//在此集合中的指定位置插入指定的元素
array.add(1,"World");
array.add(0,"Test");
System.out.println("array:"+array);
//輸出結果:array:[Test, Hello, World]
}
}
5)ArrayList常用方法
方法名 | 說明 |
---|---|
public boolea remove(Object o) | 刪除指定的元素,返回刪除是否成功 |
public E remove(int index) | 刪除指定索引處的元素,返回被刪除的元素 |
public E set(int index, E element) | 修改指定索引的元素,返回被修改的元素 |
public E get(int index) | 返回指定索引處的元素 |
public int size() | 返回集合中的元素個數 |
範例:
package ArrayListTest;
import java.util.ArrayList;
public class ArrayListTest {
public static void main(String[] args) {
ArrayList<String> array = new ArrayList<String>();
array.add("Hello");
array.add("World");
array.add("Test");
System.out.println(array);
array.remove("Hello");
System.out.println(array);
array.remove(1);
System.out.println(array);
array.set(0,"set");
System.out.println(array);
System.out.println(array.get(0));
System.out.println(array.size());
/*輸出結果:[Hello, World, Test]
[World, Test]
[World]
[set]
set
1
*/
}
}
6)案例分析:儲存學生物件並遍歷
建立一個儲存學生物件的集合,儲存3個學生物件,使用程式實現在控制檯遍歷該集合
範例:
package ArrayListTest;
import java.util.ArrayList;
public class ArrayListTest {
public static void main(String[] args) {
ArrayList<Student> array = new ArrayList<Student>();
Student s1 = new Student("小明",30);
Student s2 = new Student("小張",29);
Student s3 = new Student("小紅",27);
Student s4 = new Student("小美",26);
array.add(s1);
array.add(s2);
array.add(s3);
array.add(s3);
for(int i =0 ;i< array.size();i++){
Student s = array.get(i); //集合是什麼型別,左邊儲存的物件就是什麼型別
System.out.println(s.getName()+","+s.getAge());
}
}
}
7)案例分析:建立一個儲存學生物件的集合,儲存3個學生物件,使用程式實現在控制檯遍歷該集合,學生的姓名和年齡來自於鍵盤錄入
範例:
package ArrayListTest;
import java.util.*;
public class ArrayListTest {
public static void main(String[] args) {
ArrayList<Student> array = new ArrayList<Student>();
System.out.println("請錄入三個學生:");
for (int i=0;i<3;i++){
addStudent(array);
}
for (int i=0;i<3;i++){
Student s = array.get(i);
System.out.println(s.getName()+","+s.getAge());
}
}
public static void addStudent(ArrayList<Student> array){
Student s = new Student();
Scanner sc = new Scanner(System.in);
System.out.println("請輸入學生姓名:");
String name = sc.nextLine();
s.setName(name);
System.out.println("請輸入學生年齡:");
String Age = sc.nextLine();
s.setAge(Age);
array.add(s);
}
}
二、學生管理系統
用程式實現學生管理系統以下功能:新增學生、刪除學生、修改學生、檢視所有學生、退出
學生具有屬性:學號、姓名、年齡、居住地
學生管理系統實現思路:定義學生類、主介面的程式碼編寫、新增學生的程式碼編寫、檢視學生的程式碼編寫、刪除學生的程式碼編寫、修改學生的程式碼編寫
生成構造方法、getter、 setter方法:Alt+insert
範例:
package StudentManger;
import java.util.*;
public class StudentManger {
public static void main(String[] args) {
//用於儲存學生資訊的集合
ArrayList<Student> array = new ArrayList<Student>();
while(true) {
System.out.println();
//輸出語句完成主介面的編寫
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);
int choice = sc.nextInt();
//用switch完成操作的選擇
switch (choice) {
case 1:
System.out.println("新增學生");
addStudent(array);
break;
case 2:
System.out.println("刪除學生");
removeStudent(array);
break;
case 3:
System.out.println("修改學生");
changeStudent(array);
break;
case 4:
System.out.println("檢視所有學生");
getStudent(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();
for(int i=0;i< array.size();i++){
Student s = array.get(i);
if(s.getSid().equals(sid)){
System.out.println("學號重複,請重新輸入");
return;
}
}
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(name,age,sid,address);
//將學生物件新增到集合中
array.add(s);
//給出新增成功提示
System.out.println("新增學生成功!");
}
public static void removeStudent(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)){ //字串的比較用equals
array.remove(s);
System.out.println("刪除學生成功");
}else{
System.out.println("該資訊不存在,請重新輸入");
}
}
}
public static void getStudent(ArrayList<Student> array){
if(array.size()==0){
System.out.println("無資訊,請先新增資訊再查詢");
//return; //這裡這個語句可以省略else
}
else {//輸出表頭
System.out.println("學號\t\t\t姓名\t\t年齡\t\t居住地");//\t就是tab鍵
//遍歷Array
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" + s.getAdress());
}
}
}
public static void changeStudent(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)){
break;
}else {
System.out.println("該資訊不存在,請重新輸入");
return;
}
}
System.out.println("請輸入學生新姓名:");
String name =sc.nextLine();
System.out.println("請輸入學生新年齡:");
String age =sc.nextLine();
System.out.println("請輸入學生新地址:");
String address =sc.nextLine();
for(int i=0;i<array.size();i++){
Student s = array.get(i);
if(s.getSid().equals(sid)){
s.setName(name);
s.setAge(age);
s.setAdress(address);
System.out.println("修改學生資訊成功!");
break;
}
}
}
}
class Student {
private String name;
private String age;
private String sid;
private String address;
public Student(){
}
public Student(String name , String age ,String sid,String address ){
this.name = name;
this.age = age;
this.sid = sid;
this.address = address;
}
public void setName(String name){
this.name = name;
}
public String getName(){
return this.name;
}
public void setAge(String age){
this.age = age;
}
public String getAge(){
return this.age;
}
public void setSid(String sid){
this.sid = sid;
}
public String getSid(){
return this.sid;
}
public void setAdress(String adress){
this.address = adress;
}
public String getAdress(){
return this.address;
}
}
相關文章
- 學生管理系統
- 學生管理系統(springMVC)SpringMVC
- 【C++】學生管理系統C++
- JAVA學生宿舍管理系統Java
- Python簡易學生管理系統Python
- Django練習-學生管理系統案例Django
- 學生選題資訊管理系統
- 學生資訊管理系統用例
- 9、ArrayList集合完成學生管理系統
- 基於php學生資訊管理系統PHP
- C語言學生管理系統原始碼C語言原始碼
- Java簡單學生資訊管理系統Java
- day09 集合基礎、學生管理系統
- 某學校的學生資訊管理系統網站網站
- C++實現控制檯學生學籍管理系統C++
- [Python急救站]簡單的學生管理系統Python
- 順通高校學生網上選課管理系統
- java+SQL做學生資訊管理系統(增刪改查)學生新作JavaSQL
- 關於學生選課管理系統的用例圖
- Python編寫簡單的學生資訊管理系統Python
- 學籍管理系統
- 基於陣列的學生管理系統【C語言版】陣列C語言
- python實現學生資訊管理系統(從淺到深)Python
- Python專案開發案例(一)————學生資訊管理系統Python
- Java 學生管理系統(MVC)開源原始碼(基礎版)JavaMVC原始碼
- 教你如何運用python實現學生資訊管理系統Python
- 教你如何用python實現學生通訊錄管理系統Python
- Python學生資訊管理系統-簡易版(Python基礎)Python
- 純JavaScript實現一個帶cookie的學生管理系統JavaScriptCookie
- SMT生產管理系統(E-PMS)
- jsp畢業生離校管理系統JS
- Java入門專案:學生資訊管理系統V1Java
- Java專案:學生管理系統(java+Springboot+Maven+mybatis+Vue+Mysql)JavaSpring BootMavenMyBatisVueMySql
- SchoolCMS學校管理系統
- 基於“結構體”實現簡易版學生管理系統(Golang)結構體Golang
- 2018-09-01 學生系統
- Java學習筆記(二)JavaSE簡易學生管理系統(適合小白練手)Java筆記
- 生產製造行業ERP系統十大品牌行業