JAVA---數組

來源:互聯網
上載者:User

標籤:imp   成功   操作   class   程式   常用   元素   個數   value   

一維數組本質上是一組相同類型的線性集合,當在程式需要處理一組資料,或者傳遞資料時,可以應用這種類型的數組。

建立一維數組:數組作為對象允許使用new關鍵字進行分配記憶體。在使用數組之前,必須首先定義陣列變數所屬類型。

1:int arr[];     //聲明int型數組,數組中的每個元素都是int型。

String  str[];       //聲明string型數組,數組中的每個元素都是String型。

聲明了數組只是給出了數組名字和元素的資料類型,要想真正使用數組,還要為它分配記憶體空間。在為數組分配記憶體時,必須指明數組的長度。

數組名字 =new  數組元素類型[數組元素的個數];        arr=new int[5];

數組是通過下標來區分數組中的不同元素,數組的下標是從0開始的。

2:聲明數組的同時為數組分配記憶體。

數組元素類型      數組名=new 數組元素類型[數組元素的個數];

int month=new int[2];

初始化一維數組:

int arr=new int[]{1,3,2,5,8};

int arr={1,3,2,5,8};

eg:

public class GetDay(){

          public static void main(String[]args){

                      int day=new int[]{31,28,30,31};

                      for(int i=0;i<day.length,i++){

                         System.out.println("day[i]");

                            }

}

}

二維數組的建立及使用

如果一維數組中的各個元素仍然是一個數組,那麼它就是一個二維數組。二維數組常用於表示表中的資訊以列和行的形式組織,第一個下標代表元素所在行,第二個下標代表元素所在的列。

二維數組可以看作是特殊的一維數組,因此,二維數組的建立同樣有兩種方式。

1:先聲明,再用new運算子進行記憶體配置。

數組元素類型    數組名字[][];

數組元素類型 [][]   數組名字;

int arry[][];

同一維數組一樣,二維數組在聲明時也沒有分配記憶體空間,同樣要使用new關鍵字來分配記憶體,然後才可以訪問每個元素。

對於高維數組,有兩種為數組分配記憶體的方式:

(1)直接為每一維分配記憶體空間。

a=new int[2][4]

分別為每一維分配記憶體,

a=new int[2][];

a[0]=new int[2];;

a[1]=new int[3];

(2):聲明的同時為數組分配記憶體

第二種方式同第一種實現的相同功能。使用方式為二維碼數組分配記憶體時,首先指定最左邊維數的記憶體,然後單獨地給餘下的維數分配記憶體。

二維數組初始化:

type arryname[][]={value1,value2.....valuen};

int arryname[][]={{1,2},{45,10}};

使用二維數組:

public  class Matrix{

             public  static void main(String[]args){

                         int a[][]=new int[3][4];

                         for(int i=0;i<a.length;i++){

                                System.out.println(a[i][j]);

                                         }

                          }

}

對於整型二維數組,建立成功之後系統會賦給數組中每個元素初始值0.

數組的基本操作:

1:遍曆數組

遍曆二維數組使用雙層for迴圈。

public  class Trap{

            public  static void main(String[]args){

                         int b[][]=new int[][]{{1},{2,3},{4,5,6}};

                         for(int k=0;k<b.length;k++){

                                         for(int j=0;j<b[k].length;j++){

                                              System.out.println(b[k][j]);

                                                                   }

                                          }

                          }

}

在遍曆數組時使用foreach語句可能會更簡單。

public  class Tautog{

             public  static  void main(String[]args){

                                   int b[][]=new int[][]{{4,3},{1,2}};

                                   System.out.println("數組中的元素是:");

                                   for(int x[]:b){

                                               for(int y[]:x){

                                                       if(x==b.length){

                                                                   System.out.println(y);

                                                                       }

                                                          else

                                                                  System.out.println(e+"\");

                }

              }

                 }

   填充替換數組元素

數組中的元素定義完成之後,可通過arry類中fill來對數組中的元素進行替換。該方法通過重載形式可完成任意類型的數組元素的替換。

fill(int a[],int value):   a為要替換元素的數組,Value為要進行替換的資料。將指定的int值分給數組中的每一個元素。

import java.util.Arrays;

 public  class Swap{

             public  static  void  main(String[]args){

                        int arr[]=new int[5];

                        Array.fill(arr, 8);

                       for(int i=0;i<arr.length;i++){

                               System.out.println(arr[i]);

                                             }

                        }

}

fill(int []a,int fromIndex,int toIndex,int value);                 該方法將指定的int值分配給指定範圍中的每一個元素。如果fromIndex==toIndex,則填充範圍為空白。

import  java.util.Arrays;

public class  Displace{

            public  static void main(String[]args){

                        int arr[][]=new int[][]{45,12,2,10};

                        Array.fill(arr,1,2,8);

                        for(int i=0;i<arr.length;i++){

                                      System.out.println(arr[i]);

                                           }

                          }

}

對數組進行排序:

通過Arrays類靜態 sort()方法可以實現對數組的排序。sort()方法提供了多種重載形式,可以對任意類型的數組進行升序排序。

Array.sort(object)

import  java.util.Arrays;

public  class Taxis{

            public  static  void main(String[]args){

                        int arr[]={23,42,12,8};

                        Arrays.sort(arr);

                         for(int i=0;i<arr.length;i++){

                                 System.out.println(arr[i] );

                                        }

                         }

}

上述執行個體是對整形數組進行排序。java中的string類型數組的排序演算法是根據字典編排順序排序的。因此數字排在字母前面,大寫字母排在小寫字母前面。

複製數組:

Arrays類的copyOf()方法與copyOfRange() 方法可以實現對數組的複製,copyOf()是複製數組至指定的長度,copyOfRange()方法則將數組指定長度複製到一個新的數組中。

copyOf(arr,int newlength);

arr:要進行複製的數組;     newlength:指複製後的長度。如果新數組的長度大於數組arr的長度,則用0進行填充(根據複製數組的類型來決定填充的值,整型數組決定用0來填充的,char型數組則使用null來填充)。如果複製後的數組長度小於數組arr的長度,則會從數組arr的第一個元素開始截取滿足新數組長度為止。

eg:

 import java.util.Arrays;

 public  class Cope{

              public static void main(String[]args){

                           int arr[]=new int[]{23,42,12};

                           int newarr[]=Arrays.copyOf(arr,5);

                           for(int i=0;i<newarr.length;i++){

                                      System.out.println(newarr[i]);

                                                   }

                              }

}

copyOfRange()方法:      copyOfRange(arr,int fromIndex,int toIndex);   arr:要進行複製的數組對象。fromIndex:指定開始複製數組的索引位置。fromIndex必須在0至整個數組長度之間。新數組包括索引fromIndex的元素。  toIndex:要複製範圍的最後索引位置。可大於數組arr的長度。新數組不包括索引是toIndex的元素。

eg:

import java.util.Arrays;

public class Repeat{

           public  static  void main(String[]args){

                        int arr[]=new int[]{23,42,12,84,10};

                        int newarr[]=Array.copyOfRange(arr,0,3);

                      for(int i=0;i<newarr.length;i++){

                                 System.out.println(newarr[i]);

                                       }

                    }

}

 

}

                                   

 

JAVA---數組

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.