一,前言
hello大家好呀,今天淺略講講java的順序表,其實順序表大概一個月前就學了,但是由于前段時間期末一直沒寫博客,但是現在想想其實期末我還是有很多空余時間的,但是由于自己的原因耽誤了很多時間現在想來挺后悔的,不過沒關系,可以補上,順序表我們在c語言的階段詳細介紹過(詳情移步初級數據結構---順序表的實現-CSDN博客)其實java實現也大差不差,今天打算水一期啦哈哈,但是也確實沒有新東西,但是需要注意我們在實現是運用到了異常的拋出機制和接口,這兩部分也不難,這邊直接上代碼啦,謝謝大家。
二,代碼實現
List.java(接口)
public interface List {void Add(int num);void Add(int pos,int num);void Show();int Find(int num);void Delete(int num);void Modify(int source,int num);boolean Full();
}
MyList.java
import java.util.Arrays;
public class MyList implements List {int[] array = new int[6];int NumberSize;MyList() {array[0] = 0;array[1] = 1;array[2] = 2;NumberSize = 3;}public boolean Full() {return this.NumberSize == array.length;}private void grow() {array = Arrays.copyOf(this.array, 2 * this.array.length);}@Overridepublic void Add(int num) {if (Full())grow();array[NumberSize] = num;NumberSize++;}private void Judge(int pos) {if (pos < 0 || pos > NumberSize) {throw new RuntimeException("輸入的位置有誤");}}@Overridepublic void Add(int pos, int num) {if (Full())grow();try {Judge(pos);for (int i = NumberSize; i >= pos; i--) {array[i + 1] = array[i];}array[pos] = num;NumberSize++;} catch (RuntimeException e) {e.printStackTrace();}}@Overridepublic void Show() {for (int i = 0; i < NumberSize; i++){System.out.println(array[i]);}}private void Judge1(int pos) {if (pos < 0 || pos >= NumberSize)throw new RuntimeException("輸入位置不合法,數組元素為個數為:+" + NumberSize);}@Overridepublic int Find(int pos) {try {Judge1(pos);} catch (RuntimeException e) {e.printStackTrace();}return array[pos];}public int FindPos(int num){for (int i = 0; i <NumberSize ; i++) {if (array[i]==num){return i;}}return -1;}@Overridepublic void Delete(int num) {int pos=FindPos(num);for (int i = pos; i <NumberSize ; i++) {array[i]=array[i+1];}NumberSize--;}@Overridepublic void Modify(int pos, int num) {array[pos]=num;}
}
Main.java
public class Main {public static void main(String[] args) {MyList myList=new MyList();myList.Add(3);myList.Add(1,4);myList.Delete(4);myList.Modify(3,4);myList.Show();}
}
三,尾聲
再次感謝大家閱讀,有錯誤歡迎大家在評論區指出,下期見