帶你入門Java的數組

數組的定義

  • 數組是相同類型數據的有序集合
  • 數組描述的是相同類型的若幹個數據,按照一定的先後次序排列組合而成
  • 其中,每一個數據稱作一個數組元素,每個數組元素可以通過一個下標來訪問它們。

數組的聲明和創建

首先必須聲明數組變量,才能在程序中使用數組。下面是聲明數組變量的語法:

dataType[] arrayRefVar;//首選方法
或
dataType arrayRefVar[];

Java語言使用new操作符來創建數組,語法如下:

dataType[] arrayRefVar = new dataType[arraySize];

數組的元素是通過索引訪問的,數組索引從0開始。

獲取數組長度:arrays.length

數組的創建的初始化方式:

1.動態初始化

int[] a = new int[5];

int[0] = 1; int[1] = 2;int[2] = 3;int[3] = 4;int[4] = 5;

2.靜態初始化

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

int[] c = {1,2,3,4,5};

3.數組的默認初始化

數組引用類型,它的元素相當於類的實例變量,因此數組一經分配空間,其中的每個元素也被按照實例變量同樣的方式被隱式初始化。

數組的四個基本特點

  • 其長度是確定的。數組一旦被創建,它的大小就是不可以改變的。
  • 其元素必須是相同類型,不允許出現混合類型
  • 數組中的元素可以是任何數據類型,包括基本類型和引用類型
  • 數組變量屬引用類型,數組也可以看成是對象,數組中每個元素相當於該對象的成員變量。數組本身就是對象,Java中對象是在堆中的,因此數組無論保存原始類型還是其他對象類型,數組對象本身就在堆中

數組邊界

下標合法區間:[0,length-1],如果越界就會報錯;

ArrayIndexOutOfBoundsException:數組下標越界異常

小結

  • 數組是相同數據類型(數據類型可以為任意類型)的有序集合
  • 數組也是對象。數組元素相當於對象的成員變量
  • 數組長度的是確定的,不可變的。如果越界就會報錯:ArrayIndexOutOfBoundsException

數組的使用

package com.cnblogs;
/*
 * 本類用於測試數組01	遍歷數組
 */
public class TestArr1 {
	public static void main(String[] args) {
		int[] arr = {1,2,3,4,5,6,7,8,9};
		//遍歷數組
		for(int i = 0; i < arr.length ; i++) {
			System.out.print(arr[i] + " ");
		}
		System.out.println();
		System.out.println("=============================");
		//利用增強for循環遍歷數組
		for(int x : arr) {
			System.out.print(x + " ");
		}
		System.out.println();
		System.out.println("=============================");
		//使用自己定義的遍歷數組方法
		printArr(arr);
	}
	//定義一個遍歷數組的方法
	public static void printArr(int[] arr) {
		for(int i = 0; i < arr.length ; i++) {
			System.out.print(arr[i] + " ");
		}
	}
}

多維數組

  • 多維數組可以看成是數組的數組,比如二維數組就是一個特殊的數組,其每一個元素都是一個一維數組。
  • 二維數組
int[][] a = new int[2][5]//兩行,五列
package com.cnblogs;
/*
 * 本類用於測試數組01	遍歷二維數組
 */
public class TestArr2 {
	public static void main(String[] args) {
		int[][] arr = {{1,2},{2,3},{3,4},{4,5}};
		for(int i = 0 ; i < arr.length ; i++) {
			for(int j = 0 ; j < arr[i].length ; j++) {
				System.out.print(arr[i][j] + " ");
			}
			System.out.println();
		}
	}
}

Arrays類

  • 數組工具類java.util.Arrays
  • 由於數組對象本身並沒有什麼方法可以供我們調用,但API中提供瞭一個工具類Arrays供我們使用,從而可以對數據對象進行一些基本操作
  • 查看JDK幫助文檔
  • Arrays類中的方法都是static修飾的靜態方法,在使用的時候可以直接使用類名進行調用,而“不用”使用對象來調用(是“不用”而不是“不能”)
  • 具有以下常用功能
    • 給數組賦值:通過fill方法
    • 對數組排序:通過sort方法,按升序
    • 比較數組:通過equals方法比較數組中元素是否相等
    • 查找數組元素:通過binarySearch方法能對排序好的數組進行二分查找法操作
    • 把數組賦值成一個指定長度的新數組:通過 Arrays.copyOf(數組,新的長度)方法
      • 新數組的長度 大於 原數組, 相當於復制,並增加位置
      • 新數組的長度 小於 原數組, 相當於截取一部分數據
package com.cnblogs;
/*
 * 本類用於測試數組03	Arrays類
 */
//導入Arrays類
import java.util.Arrays;
public class TestArr3 {
	public static void main(String[] args) {
		int[] arr = {1,2,3,4,5,6,28,15,13,9};
		System.out.println(arr);//[I@3fb6a447  這裡打印的是內存地址
		//打印數組元素
		System.out.println(Arrays.toString(arr));//[1, 2, 3, 4, 5, 6, 28, 15, 13, 9]
		//數組進行排序,升序
        Arrays.sort(arr);
        System.out.println(Arrays.toString(arr));//[1, 2, 3, 4, 5, 6, 9, 13, 15, 28]
        //數組的填充
        Arrays.fill(arr,6);
        System.out.println(Arrays.toString(arr));//[6, 6, 6, 6, 6, 6, 6, 6, 6, 6]
        Arrays.fill(arr,2,4,8);//填充2-4  包括2 不包括4
        System.out.println(Arrays.toString(arr));//[6, 6, 8, 8, 6, 6, 6, 6, 6, 6]
	}
}

總結

本篇文章就到這裡瞭,希望能夠幫到您,也希望您能夠多多關註WalkonNet的更多內容!

推薦閱讀: