1. 程式人生 > >簡單的陣列增刪改查

簡單的陣列增刪改查

      陣列是Java中比較基礎的內容,但是卻是在java體系中一個非常重要的內容,它和集合都是容器,不同點是陣列的長度不可變,而集合的長度卻可以任意變化,所以在增刪改查這個練習中,使用陣列來練習比起用集合來做就更加複雜。接下來我用程式碼來說明使用陣列的用法。首先,做這個練習,要做的是把物件封裝,我做的是學生的的增刪改查,所以我先建立一個學生的類,把學生需要的屬性都放在這個類當中,
public class Student {
	 int id;
	 String name;
	 String email;
	 double score;
	 LocalDate brith;

並且寫出他無參和有參構造方法,以及它的get,set方法,

public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public double getScore() {
		return score;
	}
	public void setScore(double score) {
		this.score = score;
	}
	public LocalDate getBrith() {
		return brith;
	}
	public void setBrith(LocalDate brith) {
		this.brith = brith;
	}
	public Student(int id, String name, String email, double score,
			LocalDate brith) {
		super();
		this.id = id;
		this.name = name;
		this.email = email;
		this.score = score;
		this.brith = brith;
	}
	public Student() {
		super();
	}

這樣方便在之後獲取學生的資訊,統計學生的資訊的資訊。

      然後需要做的是把主方法的結構寫出來,這裡面寫的控制檯介面應該給人看的東西,所以應該清晰明瞭,容易操作才對。所以我的寫法是這樣的。

public class StudentRun {
public static void main(String[] args) {
		 Scanner sc = new Scanner(System.in);
		StudentSeivce t = new StudentSeivce();
		while (true) {
			System.out.println("=====學生管理系統=====");
			System.out.println("1.查詢所有學生資訊");
			System.out.println("2.增加學生資訊");
			System.out.println("3.刪除學生資訊");
			System.out.println("4.修改學生資訊");
			int input = sc.nextInt();
			switch (input) {
			case 1:
				t.find(sc);
				break;
			case 2:
				t.add(sc);
				break;
			case 3:
				t.delete(sc);
				break;
			case 4:
				t.update(sc);
				break;
			case 5:
				System.exit(0);
				break;
			default:
				break;

			}
		}

	}
}    

 在這裡我覺得需要注意的是記得把Scanner引數傳到這4個方法中,方便這4個方法可以執行。

接下來需要寫一個類來包含增刪改查這4個分別獨立的方法,設法在main方法裡呼叫。這樣才能互不干擾的在這個程式中執行,這樣寫出來也程式碼也更加清晰,讓人一目瞭然。增加學生的時候需要注意的是陣列的長度不可變,所以在這個基礎上就要重新建立一個新的陣列來替換這個原來的陣列,並且這個建立的新陣列的長度應該大於之前的陣列,這樣才可以把資料加到這個陣列當中。刪除和增加類似,都需要重新建立陣列來替換就陣列,只是在這裡,新建立的陣列應該小於原陣列。在改這個方面,我認為應該注意的是記得如何運用學生類裡面的set方法,而且在字串轉化為你設定的屬性的型別這裡也需要注意。最後在查詢這裡應該注意的是充分了解陣列的方法,如何獲取長度,如何獲取裡面的資訊。

public  void find(Scanner sc) {
		System.out.println("共有" + stus.length + "個學生資訊");
		Student max = new Student();
		Student min = new Student();
		double sum = 0;
		double average = 0;
		max.setScore(0);
		min.setScore(100);
		for (int i = 0; i < stus.length; i++) {
			System.out.println("學號:" + stus[i].getId() + ",姓名:"
					+ stus[i].getName() + ",郵箱:" + stus[i].getEmail() + ",成績"
					+ stus[i].getScore() + ",生日:" + stus[i].getBrith());
			sum += stus[i].getScore();
			average = sum / stus.length;
			if (stus[i].getScore() < min.getScore()) {
				min = stus[i];
			}
			if (stus[i].getScore() > max.getScore()) {
				max = stus[i];
			}
		}
		System.out.println("總成績:" + sum);
		System.out.println("平均分:" + average);
		System.out.println("最高分:" + max.getScore() + "他的名字是:" + max.getName());
		System.out.println("最低分:" + min.getScore() + "他的名字是:" + min.getName());
	}

	public  void add(Scanner sc) {
		System.out.println("請按格式輸入學生資訊,如:1-張三[email protected]");
		String information = sc.next();
		String[] infors = information.split("-");
		// 建立使用者輸入的物件
		Student st = new Student(Integer.parseInt(infors[0]), infors[1],
				infors[2], Double.parseDouble(infors[3]), LocalDate.of(
						Integer.parseInt(infors[4]),
						Integer.parseInt(infors[5]),
						Integer.parseInt(infors[6])));
		// 建立一個新的容器(陣列)
		Student[] newstus = new Student[stus.length + 1];
		// 把原有的陣列資料放入新容器(陣列)中
		for (int i = 0; i < stus.length; i++) {
			newstus[i] = stus[i];
		}
		// 將新資料放入新陣列中
		newstus[stus.length] = st;
		// 新容器替換舊容器
		stus = newstus;
		System.out.println("新增成功");
	}

	public void delete(Scanner sc) {
		System.out.println("輸入刪除學生的學號");
		int id = sc.nextInt();
		// 找到要刪除的那個學生

		int index = -1;
		for (int i = 0; i < stus.length; i++) {
			if (id == stus[i].getId()) {
				// 將下標賦給輸入要刪除的學生的下標
				index = i;
				break;
			}
		}
		// 構造一個新容器
		Student[] newstus = new Student[stus.length - 1];
		if (index == -1) {
			System.out.println("查無此人");
			return;
		}
		// 把未標記刪除的學生放入新容器之中
		for (int i = 0; i < newstus.length; i++) {
			if (i < index) {
				//把舊陣列中刪除學生的下標前面的元素賦值給新陣列
				newstus[i] = stus[i];
			} else {
				//把舊陣列中刪除學生的下標後面的元素賦值給新陣列
				newstus[i] = stus[i + 1];
			}
		}

		stus = newstus;
	}

	public void update(Scanner sc) {
		System.out.println("輸入修改學生的學號");
		int id = sc.nextInt();
		Student update =null;
		for(int i=0;i<stus.length;i++){
			if(stus[i].getId()==id){
				update=stus[i];
				
				
			}
			
		}
		if(update==null){
			System.out.println("查無此人");
			return;
		}
		//獲取新的學生資訊
		System.out.println("輸入的學生資訊如下");
		String info = sc.next();
		String [] infos= info.split("-");
		update.setName(infos[0]);
		update.setEmail(infos[1]);
		update.setScore(Double.parseDouble(infos[2]));
		update.setBrith(LocalDate.of(Integer.parseInt(infos[3]), Integer.parseInt(infos[4]), Integer.parseInt(infos[5])));
		System.out.println("修改成功");
	}
}
好了,這樣一個簡單的增刪改查就完成了,可能在敘述過程中還有很多不足,望大家來批評指正。最後謝謝大家的觀看。

相關推薦

簡單陣列刪改

      陣列是Java中比較基礎的內容,但是卻是在java體系中一個非常重要的內容,它和集合都是容器,不同點是陣列的長度不可變,而集合的長度卻可以任意變化,所以在增刪改查這個練習中,使用陣列來練習比起用集合來做就更加複雜。接下來我用程式碼來說明使用陣列的用法。首先,做這個

通過JDBC進行簡單刪改(以MySQL為例)

mage ron end main exce javax xtend 探索 rman 通過JDBC進行簡單的增刪改查(以MySQL為例) 目錄 前言:什麽是JDBC 一、準備工作(一):MySQL安裝配置和基礎學習 二、準備工作(二):下載數據庫對應的jar包並

LINQ的最簡單刪改寫法

sin 提交 pos 精確 lis show text name 直接 .ToList();//返回一個集合,包含查到的所有值; .First();//返回查到的第一條數據,如果查不到會報錯; .FirstOrDefault();返回查到的第一條數據,差不到返回一個nul

myeclipse中JDBC連接mysql和簡單刪改

eal next() 獲取 ont rom date cto 有用 insert 廢話不多說,直接上操作圖,操作起來理解會更徹底 1、myeclipse中項目結構,先在web-inf-lib下導入jar包,註意Web App Libraries這個目錄,下面會有用到的地方

通過flask實現web頁面簡單刪改

bug html red end pla pan fileutil log class 通過flask實現web頁面簡單的增刪改查 # 1.後臺程序falsk_web01.py #coding:utf-8 from flask import Flask

簡單刪改操作命令

區別 命名 兩個 integer pan 數據庫 add 希望 robert 刪除  DELETE FROM (數據庫的哪一個表)USER WHRER ID=(條件)2; 插入  INSERR INTO (數據庫的哪一個表)USER VALUES(數據); 查找  SEL

vue2 + iview-admin 1.3 + django 2.0 一個最簡單刪改例子

iview-admin axios django 前後端分離 api 以下為利用iview-admin + django 做的一個最基本的增刪改查例子。 前端iview-admin git clone https://github.com/iview/iview-admin.git cd

通過JDBC進行簡單刪改(以MySQL為例)(轉載)

IE trac archive solver ttl 賦值 TP 定義 for 轉載:https://www.cnblogs.com/wuyuegb2312/p/3872607.html 目錄 前言:什麽是JDBC 一、準備工作(一):MySQL安裝配置和基礎學習 二、準備

DBFlow數據庫的簡單使用(刪改)

date() prim 可能 save his ces utils pre roc 第一步: 在項目下的build.gradle中添加 maven{url"https://jitpack.io"} 第二步: 在app下的bulid.gradle下添加: annotat

Spring Data jpa + extjs 實現簡單刪改

公司最近的專案一部分是在使用MyBatis,還有一部分使用SpringJPA,jpa平時沒怎麼用過,今天閒來無事做個增刪改查的demo,記錄下來。 環境;jdk 1.8 編輯器: IDEA 資料庫:postgresql 首先貼上專案所需要的依賴 <?xml version=

ssm實現簡單刪改demo

訂閱 Spring介紹: spring 使用基本的 JavaBean 來完成以前只可能由 EJB 完成的事情。然而, Spring的用途不僅限於伺服器端的開發。從簡單性、可測試性和鬆耦合的角度而言,任何Java 應用都可以

SSH整合 簡單刪改

Database 使用 Mysql , 建立User 表 [html] view plain copy print ? CREATE TABLE `user` (  &n

Springboot整合Thymeleaf、layui實現簡單刪改

Springboot整合Thymeleaf、layui實現簡單的增刪改查 主頁面列表分頁顯示 搜尋功能 新增使用者 編輯使用者 Mapper對映 Controller層 list.html初始化載入表格資料 搜尋過載表

詳細記錄->使用Maven+SSM框架,實現單表簡單刪改

       話不多說,ssm框架整合小列子,這次記錄一個單表增刪改查的ssm例子,所以才手寫mapper,平時我都是用逆向工程自動生成mapper,簡單方便。 需要了解逆向工程請看:https://blog.csdn.net/Destiny_stri

JDBC實現簡單刪改

exceptio 介紹 cde sna arch png into 註冊 sets JDBC的開發步驟 * a: 步驟介紹 1.註冊驅動 告知JVM使用的是哪一個數據庫的驅動 2.獲得連接 使用JDBC中的類,完成對MySQL數據庫的連接 3.獲

Hibernate+struts2之ajax非同步實現簡單刪改例子

使用hibernate表連線 entity程式碼(程式碼過多就不上傳了,自行封裝) Publisher實體 public class Publisher implements Serializable{ private int id; private String nam

JFinal框架學習------整合bootstrap前端框架,實現簡單刪改功能

   Bootstrap,來自 Twitter,是目前最受歡迎的前端框架。Bootstrap 是基於 HTML、CSS、JAVASCRIPT 的,它簡潔靈活,使得 Web 開發更加快捷。 一、JFinal整合bootstrap   1.下載bootstra

使用 PyMySQL 連線資料庫,並實現簡單刪改

首先需要 import pymysql 1.連線資料庫 #獲取資料庫連線 def getDBConn(): conn = pymysql.connect( host = 'localhost', port = 3306, user = 'root', password

express實現簡單刪改學習筆記(2)

接上一個(1),將會用express實現簡單的增刪改查的功能 1.在專案資料夾下新建data資料夾,此資料夾下新建data.json,裡面寫一個空的陣列 2.在專案資料夾下新建db.js const json = require('./data'); //是新生成的da

Java後端愛上SpringBoot 第一節:一個簡單刪改

Java後端愛上SpringBoot 第一節:一個簡單的增刪改查 SpringBoot的魅力 一些連結 本文標籤 開發工具 Begin Hello World 寫一個使用者的增刪改查 實體 資料訪問層 檢視層