更新時間:2020-10-20 17:53:36 來源:動力節點 瀏覽1364次
數組(Array)是有序的元素序列。在程序中可以使用下標變量,即說明這些變量的整體為數組,數組中的每個變量的數據類型是相同的。當數組中每個元素都只帶有一個下標時,稱這樣的數組為一維數組。一維數組是數組里面最重要的基本組成部分,本文我們就一起來全面解析一下一維數組。
1.一維數組聲明方式
方式一
數據類型 數組名[] = null ; //聲明一維數組
數組名 = new 數組類型[長度]; // 分配內存給數組
方式二
數據類型[] 數組名 = null ; //聲明一維數組
數組名 = new 數組類型[長度]; // 分配內存給數組
簡寫方式
數據類型 數組名[] = new 數據類型[個數]; //聲明數組的同時分配內存
2.一維數組中元素的表示方法
數組的聲明以及簡單輸出
package com.shxt.demo01;
public class ArrayDemo01 {
public static void main(String[] args) {
int[] score = null; //聲明數組,但是為開辟內存空間
score = new int[3]; //為數組開辟"堆內存"空間
System.out.println("score[0]="+score[0]); //分別輸出數組的每個元素
System.out.println("score[1]="+score[1]); //分別輸出數組的每個元素
System.out.println("score[2]="+score[2]); //分別輸出數組的每個元素
// 使用循環依次輸出數組中的全部內容
for (int i = 0; i < 3; i++) {
System.out.println("score["+i+"]="+score[i]);
}
}
}
對于數組的訪問采用"數組名稱[索引或者下標]"的方式,索引從0開始計數,假設程序中取出的內容超過了這個下標范圍,例如:score[3]程序運行會存在以下的異常錯誤提示信息:
java.lang.ArrayIndexOutOfBoundsException:3
提示的內容為數組索引超出綁定的異常(經常說的數組越界異常),這個是未來你們初學者經常出現的問題,請引起重視.此外,我們發現以上的程序運行的結果的內容都是"0",這是因為聲明的數組是整型數組.
默認初始化數據:數組元素相當于對象的成員變量,默認值跟成員的規則是一樣的,重點記憶!
系統將按照如下規則分配初識值:
數組元素的類型是基本類型中的整數類型(byte,short,int和long),則數組元素的值為0
數組元素的類型是基本類型中的浮點類型(float,double),則數組元素的值為0.0
數組元素的類型是基本類型中的字符類型(char),則數組元素的值為'\u0000'(空格)
數組元素的類型是基本類型中的布爾類型(boolean),則數組元素的值為false
數組元素的類型是引用數據類型(類,接口和數組),則數組元素的值為null
為數組中的元素賦值并進行輸出
聲明整型數組,長度為5,通過for循環賦值1,3,5,7,9的數據
package com.shxt.demo01;
public class ArrayDemo02 {
public static void main(String[] args) {
int[] score = null; //聲明數組,但是為開辟內存空間
score = new int[5]; //為數組開辟"堆內存"空間
for (int i = 0; i < 5; i++) {
score[i] = i*2+1;
}
for (int i = 0; i < 5; i++) {
System.out.println("score["+i+"]="+score[i]);
}
}
}
數組長度的取得
數組名稱.length --> 返回一個int型的數據
package com.shxt.demo01;
public class ArrayDemo03 {
public static void main(String[] args) {
int[] score = new int[5];
System.out.println("數組長度為:"+score.length);
}
}
3. 一維數組的初始化方式
動態初始化
之前練習的就是使用的動態初始化方式
package com.shxt.demo01;
public class ArrayDemo04 {
public static void main(String[] args) {
int[] score = null; //聲明數組,但是為開辟內存空間
score = new int[3]; //為數組開辟"堆內存"空間
score[0] = 100;
score[1] = 200;
score[2] = 300;
}
}
靜態初始化
數據類型[] 數組名={初始值0,初始值1,...,初始值N}
或者
數據類型[] 數組名 = new 數據類型[]{初始值0,初始值1,...,初始值N}
package com.shxt.demo01;
public class ArrayDemo04 {
public static void main(String[] args) {
int[] score = {10,20,30,40,50};
for (int i = 0; i < score.length; i++) {
System.out.println("score["+i+"]="+score[i]);
}
}
}
4一維數組一定要初始化嗎
在之前我們說在使用Java數組之前必須要先初始化數組(即在使用數組之前,必須先創建數組).實際上,如果真正掌握了Java數組中的分配機制,那么可以完全換一個方式來初始化數組.
始終記住:Java的數組變量只是引用類型的變量,它并不是數組對象本身,只是讓數組變量指向有效的數組對象,程序中即可使用該數組變量
package com.shxt.demo01;
public class ArrayDemo08 {
public static void main(String[] args) {
// 靜態初始化:定義并且初始化nums數組
int nums[] = {13,34,57,100};
// 定義一個scores數組變量
int[] scores;
//讓scores數組執行nums所引用的數組
scores = nums ;
// 對scores進行變量
System.out.print("scores數組數據:");
for (int i = 0; i < scores.length; i++) {
System.out.print(scores[i]+"\t");
}
// 將scores數組中第3個元素賦值為200
scores[2] = 200;
// 訪問 nums 數組的第3個元素,將看到輸出值為200
System.out.println("\nnums 數組的第3個元素,將看到輸出值為:"+nums[2]);
}
}
既然數組內容可以進行引用傳遞,那么就可以把數組作為方法中的參數,而如果一個方法想接收參數,則對應的參數類型必須是數組
使用方法接收數組
package com.shxt.demo01;
public class ArrayDemo09 {
public static void main(String[] args) {
// 靜態初始化:定義并且初始化nums數組
int nums[] = {13,34,57,100};
// 引用傳遞, int[] temp = nums
print(nums);
}
public static void print(int[] temp){
for (int i = 0; i < temp.length; i++) {
System.out.print(temp[i]+"\t");
}
}
}
使用方法修改數組的內容
package com.shxt.demo01;
public class ArrayDemo10 {
public static void main(String[] args) {
// 靜態初始化:定義并且初始化nums數組
int nums[] = {1,2,3,4,5};
// 引用傳遞, int[] temp = nums
inc(nums); //擴容操作
print(nums); //打印內容
}
public static void inc(int[] temp){
for (int i = 0; i < temp.length; i++) {
temp[i]*=2;
}
}
public static void print(int[] temp){
for (int i = 0; i < temp.length; i++) {
System.out.print(temp[i]+"\t");
}
}
}
一維數組是由數字組成的以單純的排序結構排列的結構單一的數組。一維數組是計算機程序中最基本的數組。二維及多維數組可以看作是一維數組的多次疊加產生的。想要學習數組,一維數組是學習二維及多維數組的基礎,本站的Java基礎教程里面有最新的教程可供參考學習,為眾多Java初學者排憂解難。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習