java建立陣列,實現增刪改查
1:建立陣列
int[] arr = new int[10];//建立陣列,初始化大小為10
2:訪問資料資料項
arr[0]=1;//這個是設定她的值
System.out.println(arr[0]);//這個是獲取她的值,通過列印的方式
3:陣列的初始化
int[] arr2 = new int[]{1,2,3};
二:
面向物件程式設計方式
1:使用自定義類來封裝陣列
package SJJG;
public class Myarray {
private long[] array;
//表示有效資料的長度
private int elements;
public Myarray() {
// TODO Auto-generated constructor stub
// 在構造方法裡給陣列賦值
array = new long[50];
}
//在重構構造方法
public Myarray(int maxSize){
array = new long[maxSize];//這個大小是我的構造方法裡傳入的
}
//接下來插入資料
public void insert(int values){
//第一次新增是為0的,即values
array[elements]=values;
elements++;//讓她遞增
//當第二次呼叫這兒新增的時候,array[elements]裡面是為1,然後遞增為2
}
//顯示資料
public void diplay(){
System.out.print("[");
//用for迴圈遍歷,i=0,下標為0
for (int i = 0; i < elements; i++) {
System.out.print(array[i]+" ");
}
System.out.println("]");
}
//查詢資料
//我們是根據什麼來查詢呢?我們是根據值來查詢,返回她的所有值
public int search(long value){
int i;//i在外面進行一個判斷,然後在迴圈裡面賦值
// 比如說我查詢這個15,arry.insert(15);,那麼她的索引是2
//怎麼樣來查呢?同樣也是經過一個迴圈
for (i = 0; i < elements; i++) {
if (value == array[i]) {//如果值是等於array[i]
// 如果查詢到了,就跳出
break;
}
}
if(i==elements){//意思就是說for迴圈結束了,都查詢完還沒找到這個元素,就返回-1
return -1;
}else{
return i;
}
}
// 查詢資料,根據索引來查
public long get(int index){
//這個時候需要對index進行判斷
if(index >=elements || index<0)//如果index大於有效元素,或者小於0
{
//丟擲一個異常
throw new ArrayIndexOutOfBoundsException();
}else{
return array[index];
}
}
//刪除資料
// 根據index來刪除資料
public void delete(int index){
//刪除也需要對index進行判斷,判斷完成後應該怎麼樣呢?
if(index >=elements || index<0)//如果index大於有效元素,或者小於0
{
//丟擲一個異常
throw new ArrayIndexOutOfBoundsException();
}
//假設陣列的值分別為1,3,4,5,如果要刪除3,那麼我們把4的值賦值給array[1],即3就可以了,覆蓋她
// 5接著覆蓋4,最後把elements減去1;表示有效長度減去1
else{
//i從index開始,小於i++
for (int i = index; i < elements; i++) {
//前面的值等於後面的值
array[index]=array[index+1];
}
//最後還要對有效的長度減1
elements--;
}
}
//更新資料
public void chang(int index,int newValue){
//同樣,因為有index,所以需要判斷
if(index >=elements || index<0)//如果index大於有效元素,或者小於0
{
//丟擲一個異常
throw new ArrayIndexOutOfBoundsException();
}
//思考如何進行更新?
else{
// 只需要把index的值進行一個設定就可以了
array[index]=newValue;
}
}
}
2:新增類的方法來實現資料操作
package SJJG;
public class Test {
public static void main(String[] args) {
//建立類的例項
Myarray arry = new Myarray();
arry.insert(13);//插入資料
arry.insert(12);
arry.insert(15);
// 呼叫顯示方法,會把陣列全都打印出來
arry.diplay();
//進行查詢
System.out.println(arry.search(12));//打印出1,查詢到
System.out.println(arry.search(11));//查詢不到,返回-1
//進行索引查詢
System.out.println(arry.get(2));//打印出15
// System.out.println(arry.get(4));//丟擲異常
// System.err.println(arry.get(-3));//丟擲異常
//刪除資料
arry.delete(1);
//再進行顯示
arry.diplay();
//進行改
arry.chang(0,19);
arry.diplay();//此刻13已經變成19了
}
}