您好,登錄后才能下訂單哦!
小編給大家分享一下java數據結構和算法中數組的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
我隨意借了一張圖,所謂的數據結構就是下面這些
1.數組的基本用法
對于數組應該很熟悉了,最開始學完java八種基本類型之后下一個就是學的數組,數組最大的特點就是除了Object數組之外,其他的數組只能存放同一種數據類型,而且我們一開始指定數組就要指定確定的長度,一旦插入的數據超過這個長度,就會報錯,其實就是因為數組的缺點太大,于是就根據數組的基礎設計出來了集合,集合后面說。。
兩種用法,以Object數組為例,這個數組可以隨意放什么東西,然后用Arrays.toString(xxx)可以打印數組中的所有元素;
任何數據類型都有與之對應的數組,比如int[],String[],boolean[]等等
2.簡單實現對數組的增刪改查
·用數組的比較麻煩,還要一個一個慢慢賦值,對我們操作數據也不是很方便,那我們就隨意實現一下我們自己的數組最簡單的增刪改查吧!
package com.wyq.thread; public class MyArray { private int[] arr; //數組中當前存有數據的個數,也叫做數組的有效長度 private int eles; //數組中可容納最大的數量 private int length; //注意這兩個構造器,在無參構造中調用有參構造并設置默認的數組長度 public MyArray() { this(10); } public MyArray(int length){ eles = 0; this.length = length; arr = new int[length]; } //獲取當前數組存的實際數據的數量 public int size(){ return eles; } //展示當前數組中的數據 public void show(){ System.out.print("數組中所有的數分別為:"); for (int i = 0; i < arr.length; i++) { System.out.print(arr[i]+" "); } System.out.println(); } //向數組中添加數據 public boolean add(int num){ //假如當前數組已經滿了還往里面添加數據,那就拋出異常并返回false,后續操作還是會繼續 //這里就沒怎么考慮給這個數組擴容 if (length==eles) { try { throw new Exception("不好意思,數組已經滿了,你還是別存了!"); } catch (Exception e) { e.printStackTrace(); } return false; }else{ arr[eles] = num; eles++; return true; } } //在數組中查有沒有一個xxx數據,有就返回其索引值,沒有的話就返回null,其實也可以捕捉異常,可以自己試試 public Integer find(int value){ if (arr!=null) { for (int i = 0; i < arr.length; i++) { if (arr[i]==value) { return i; } } } return null; } //刪除數組中的xx數據,這里會進行很多的判斷,可以說這個方法是數組中最麻煩的方法了 //1.先調用查詢方法看數組中有沒有我們要刪除的數據,沒有直接返回-1,有的話就進入第二步 //2.如果這個要刪除的數據在數組最后,那就直接將數組有效長度減一即可,如果不在最后,進入第三步 //3.一個數組要刪除中間的個位置,不可能直接將這個數據復制為0或者null,我們只需要把這個位置的后面所有數據都向前 // 移動一個位置即可,這時數組的最后一個位置就空出來了,我們再把數組的有效長度減一就行了 public int delete(int value){ Integer find = find(value); if (find!=null) { if (find==eles-1) { eles--; }else{ for (int i = find; i < arr.length-1; i++) { if (arr[i]==value) { arr[i]=arr[i+1]; } } eles--; } } return -1; } //更新數據,先調用查詢方法找到這個數據所在位置,然后直接賦值即可 public boolean update(int index,int value){ Integer find = find(index); if (find!=null) { arr[index]=value; return true; } return false; } public static void main(String[] args) { //由于沒有指定數組長度,就會用默認的10 MyArray array = new MyArray(); for (int i = 0; i < 10; i++) { array.add(i); } //注意,此時由于數組滿了我們還添加數據,就會報異常 array.add(222); array.show(); array.delete(5); System.out.println("刪除數據后數組的實際大小:"+array.size()); array.add(100); array.update(0, 10); array.find(9); array.show(); } }
以上是“java數據結構和算法中數組的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。