java基礎學習——數組

                                                        數組

1.什麼是數組?

答:數組是最基本的一種數據結構,相同數據類型的元素組成的集合。             程序 = 算法 + 數據結構

(1) 數據結構:把數據按照特定的某種結構來保存,設計合理的數據結構是解決問題的前提,設計良好的數據結構導致良好的算法。

(2)算法:解決問題的步驟 | 流程,先弄數據結構再弄算法。

2.數據中元素按照線性順序排列,線性順序指除第一個元素外,每一個元素都有唯一的前驅元素;除最後一個元素外每一個都有唯一的後繼元素。

(1)數組的定義與初始化:A   int [] arr = new int[4];     //0,0,0,0

                                         B   int [] arr = {1,3,5,7};      //1,3,5,7

                                         C   int [] arr = new int[]{1,3,5,7};     //1,3,5,7

                                         D   arr = new arr[]{1,3,5,7};   //1,3,5,7

(2)數組的訪問:     A  通過.length獲取數組的長度

                                                            int []  arr = new int [4];

                                                      System.out.println(arr.length);

                                 B  通過引用下標來訪問數組的元素,下標從0開始最大到.length-1

                                                     int    [] arr = new int[4];

                                                     arr[0] = 100;   //給數組arr中第一個元素賦值爲100

                                                     arr[4] = 100;  //異常,數組下標越界

                                C  數組的遍歷

                                                      int  []arr = new int[4];

                                                      for(int i=0;i<arr.length;i++){
                                                                arr[i]=(int)(Math.Random()*100);

                                                            }

                                                     for(int j=0;j<arr.length;j++){
                                                        System.out.println(arr[j]);

                                                           }

                         注意:數組下標越界的錯誤

(3)基本類型的數組創建後其元素的初始值爲:byte,short,char,int,long爲0,(其中char的爲字節碼),float和double爲0.0,boolean爲false.

3.數組的複製

(1)使用System.arrarcopy()訪問可以實現數組的複製。

                                                       public  static void  arraycopy(Object src,int srcPos,Object dest,int destPos,int length).

                        src---源數組                  srcPos---源數組中的起始位置                  dest---目標數組

                       destPos---目標數組的起始位置            length----要複製數組元素的個數  

(2)使用java.util.Arrays類的copyof方法進行復制

                          類型 [ ]     newArray  = Array.copyof(類型[ ].original,int newlength);

                 特點:生成的新數組是原數組的副本。

          newlength小於原數組,則進行截取;newlength大於原數組,則用0或者null進行填充。

例子:

(1) int  [ ] a = new int [ ]{1,2,3,4,5,6};

         int  [ ]  b = new int[10];

          複製:System.arrayCopy(1,0,b,0,5);

(2)int  [ ] a = {1,2,3,4,5};

        複製:int [ ] b = Arrays.copyOf(0,5);

  //擴容(創建一個新的數組a,數據不變,長度爲原始長度加一)

        a = Arrays.copyOf(a,a.lenght+1);

 //縮容(創建一個新的數組a,數據不變,長度爲原始長度減一)

       a = Arrays.copyOf(a,a.kength-1);

4.數組的排序

(1)一般情況下,通過排序過程中數組元素的交換次數來衡量排序算法的優缺,

(2)常用的排序算法爲:插入排序,冒泡排序,快速排序等。

(3)數據不一樣,使用不同的排序算法效率不同。

    A  JDK提供的Arrays.sort()方法封裝了數組的排序算法,默認爲升序。  例如:Array.sort(arr); //arr代表書組名

    B  冒泡原理:n個數只需n-1次,每次都和他的下一個元素比,每次都是從第一個開始,冒出來的數就不帶他玩了,(外循環控制輪數,內循環控制每次比的次數)

5.質數(素數):只能執行補1和它本身整除的數

6.並非一次執行就能的大結果的用開關操作(指的是boolean)。    平方根函數  int  a = Math.sqrt(number);

7.方法:
A 封裝一段特定的邏輯功能

B 儘可能的獨立,一個方法只幹一件事

C 代碼的複用,便於代碼的維護

D 方法可以在程序中反覆被調用

1)定義方法的五個要素:修飾詞,返回值類型,方法名,參數列表,方法體

                                                  

(2)方法的參數是指:在調用時傳遞給方法,需要方法處理的數據,方法有參數也可以沒有參數,有參可以使方法處理更加靈活,在方法定義時,需要聲明該方法所需要的參數變量,在方法調用時,會將實際的參數值傳遞給方法的參數變量,必須保證傳遞參數的類型和額數符合方法的聲明。

3)方法在聲明時必須指定返回值的類型

A 若方法不需要返回數據,將返回值類型聲明爲void

B 若方法需要數據,將返回值類型聲明爲特定數據類型

(4)有返回值時:return即可以是個具體數,也可以是個表達式

(5)return作用:結束方法且將數據返回給調方,只有return;只是表示結束方法(可在無返回值得方法中調用)

(6)調用方法時的參數傳遞

                    public  static int max(int a,int b){

                                     }

                            int a = 5;

                            int b= 6;

                    int myMax = max(a,b);

A 爲main方法中的變量a,b,myMax分配空間並賦值

B 調用方法max,爲max方法的參數變量a,b分配空間

C 將調用值傳遞到參數變量中

D max方法運行完返回,參數空間釋放

E main方法中的myMax變量得到返回值

 


                                                                                                                                              希望得到大神的補充,謝謝大家

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章