夯實Java基礎(一)——數組

一、Java數組介紹

數組(Array):是多個相同類型元素按必定順序排列的集合。 程序員

數組是編程中最多見的一種數據結構,可用於存儲多個數據,每一個數組元素存放一個數據,一般咱們能夠經過數組元素的索引來訪問數組元素。包括爲數組元素賦值和取出數組元素的值。編程

數組的基本特性:數組

①、數組自己是引用數據類型,而數組中的元素能夠是任何數據類型,包括基本數據類型和引用數據類型。數據結構

②、建立數組對象會在內存中開闢一整塊連續的空間,而數組的引用是這塊連續空間的首地址。spa

③、數組一旦初始化完成,數組在內存所佔用的空間將被固定下來,所以數組的長度不可變。code

④、數組能夠直接經過下標的方式來調用,下標從0開始。對象

二、數組的定義

①、靜態初始化:初始化時顯示指定每一個元素的初始值,由系統決定數組長度 blog

數據類型 [ ]  數組名稱 = new 數據類型 [ ]{ 元素1,元素2,...}
數據類型 [ ]  數組名稱 = { 元素1,元素2,...}

這種方式聲明數組的同時直接給定了數組的元素,數組的大小由給定的數組元素個數決定。 排序

②、動態初始化:初始化時候程序員只指定數組長度,由系統元素分配初始值。索引

數據類型 [ ]  數組名稱 = new 數據類型 [數組長度]
數據類型  數組名稱[ ] = new 數據類型 [數組長度]

這種方式推薦將 [ ] 放在數組名稱的前面,這樣比較直觀。

注意:動態初始化,肯定了數組長度,就算沒有顯式的賦值,那麼他也有它們基本數據類型的默認值,如int默認值是0,String默認值爲null。

③、簡單示例:

//聲明一個元素爲1,2,3的int型數組
int[] arr=new int[]{1,2,3};
int[] arr1={1,2,3};
//聲明一個長度爲3的數組
int[] arr2=new int[3];

④、錯誤寫法:

//未指定數組長度
int [] arr1=new int[];
//數組前面[]不能寫長度
int [5] arr2=new int[5];
//靜態初始化不能寫長度
int [] arr3=new int[3]{1,2,3};

以上的寫法都是錯誤的,在編譯時會報錯。

⑤、訪問數組元素以及給數組元素賦值

數組是存在下標索引的,經過下標能夠獲取指定位置的元素,數組下標是從0開始的,也就是說下標0對應的就是數組中第1個元素,能夠很方便的對數組中的元素進行存取操做。

//聲明一個長度爲3的數組
int[] arr=new int[3];
//給arr第1個元素賦值1
arr[0]=1;
//給arr第2個元素賦值2
arr[1]=2;
//輸出
System.out.println(arr[0]);
System.out.println(arr[1]);

上面的arr數組,咱們只能賦值三個元素,也就是下標從0到2,若是你訪問 arr[3] ,那麼會報數組下標越界異常。

⑥、數組遍歷

數組有個 length 屬性,是記錄數組的長度的,咱們能夠利用length屬性來遍歷數組。

//聲明一個元素爲1,2,3的int型數組
int[] arr=new int[]{1,2,3};
//遍歷arr數組
for (int i = 0; i < arr.length; i++) {
     System.out.println(arr[i]);
}
// 使用加強for循環foreach進行遍歷
for (int i : arr) {
      System.out.println(i);
}
//使用Arrays.toSting(數組名)進行遍歷
System.out.println(Arrays.toString(arr));

三、數組使用示例

①、將數組元素反轉:

public class ArrayTest {
    public static void main(String[] args) {
        String[] str=new String[]{"AA","BB","CC","DD","EE","FF","GG"};
        System.out.println("反轉前:");
        for (int i = 0; i < str.length; i++) {
            System.out.print(str[i]+"\t");
        }
        for(int i=0;i<str.length/2;i++){
            String temp=str[i];
            str[i]=str[str.length-i-1];
            str[str.length-i-1]=temp;
        }
        System.out.println();
        System.out.println("反轉後:");
        for (int i = 0; i < str.length; i++) {
            System.out.print(str[i]+"\t");
        }
    }
}

②、線性查找:

public class ArrayTest1 {
    public static void main(String[] args) {
        String[] str=new String[]{"AA","BB","CC","DD","EE","FF","GG"};
        String dest="BB";
        boolean isFlag=true;
        for (int i = 0; i < str.length; i++) {
            if (dest.equals(str[i])){
                System.out.println("找到了元素,位置在"+(i+1));
                isFlag=false;
                break;
            }
        }
        if (isFlag) {
            System.out.println("對不起,沒有找到");
        }
    }
}

③、提到數組都離不開一個經典的排序——冒泡排序

public class ArrayTest2 {
    public static void main(String[] args) {
        int[] arr=new int[]{56,12,32,98,78,45,-45,3,55,-16};
        for (int i = 0; i < arr.length; i++) {
            for (int j=0;j<arr.length-1-i;j++){
                if (arr[j]>arr[j+1]){
                    int temp=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                }
            }
        }
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i]+"\t");
        }
    }
}

四、總結

數組不管在Java,C,C++,PHP等語言中都有着很是重要的地位,因此學號數組基礎很是有必要。

相關文章
相關標籤/搜索