1. 程式人生 > >Java高階篇-5-Arrays類

Java高階篇-5-Arrays類

       前面介紹了字串的操作的String類,這篇,我們學習陣列類,Java中提供了一個數組常見操作方法的類Arrays.java。其實前面也說過,String其實原始碼中就是用一個char[]陣列來儲存的,也是屬於陣列的範圍。來看看陣列類常見操作方法舉例。

1.陣列的建立和元素遍歷

package demo3;

import java.util.Arrays;

/**
 * create by Anthony on 2017/10/29
 */
public class ArraysDemo {

    public static void main(String args[]){

        //陣列建立1,基礎資料型別陣列
        int[] numbers = new int[12];

        //引用資料型別資料建立,100是陣列長度
        String[] st = new String[100];
        // 先宣告
        int[] myArray ;
        myArray = new int[10];

        //聲明後直接賦值
        int[] a = {40, 20, 50, 10, 60, 30};

        //需求:輸出陣列每個元素的位置和值
        System.out.println("第1種遍歷陣列元素方式");
        for(int i=0; i<a.length; i++){
            System.out.println(i+ "\t"+a[i]);

        }

        //第二種for迴圈比遍歷陣列元素
        System.out.println("第2種遍歷陣列元素方式");
        for(int x : a){
            //System.out.println("\t"+x);
            System.out.print("\t"+x);
        }

    }
}

輸出結果:

第1種遍歷陣列元素方式
0	40
1	20
2	50
3	10
4	60
5	30
第2種遍歷陣列元素方式
	40	20	50	10	60	30

2.陣列中元素查詢和替換和排序

       主要有根據索引查詢元素,根據索引替換元素的值,排序Java提供了從小到大排序,這裡我寫了一個從大到小的逆序,前提是基於從小到大排好序的陣列。

package demo3;

import java.lang.reflect.Array;
import java.util.Arrays;

/**
 * create by Anthony on 2017/10/29
 */
public class ArraysDemo {

    public static void main(String args[]){

        int[] a = {40, 20, 50, 10, 60, 30};
        //利用Array類的靜態方法
        //根據索引得到元素
        int b = Array.getInt(a, 2);
        System.out.println(b);

        //修改某一個元素額值
        Array.set(a,2,80);
        System.out.println(Arrays.toString(a));

        //排序(從小到大)
        Arrays.sort(a);
        System.out.println(Arrays.toString(a));

        //排序(從大到小),前提是利用前面已經排好的陣列
        int len = a.length;
        for(int i=0; i<len/2; i++){
            int temp = a[i];
            a[i] = a[len-1-i];
            a[len-1-i] = temp;
        }
        System.out.println("逆序後:"+Arrays.toString(a));

        //比較兩個陣列是否相等
        int[] c = {10, 20 , 30 , 50 , 70};
        System.out.println(Arrays.equals(a, c));
    }
}

注意,上面用了兩個類的靜態方法,Array和Arrays類。執行結果:
50
[40, 20, 80, 10, 60, 30]
[10, 20, 30, 40, 60, 80]
逆序後:[80, 60, 40, 30, 20, 10]
false

下一篇,我們來利用陣列來學習Java中的淺拷貝和深拷貝。