初識(shí)JAVA數(shù)組
1. 一維數(shù)組
1.1 一維數(shù)組的定義
type arrayName[]; type[] arrayName;
當(dāng)中類型(type)能夠?yàn)镴ava中隨意的數(shù)據(jù)類型,包含簡單類型組合類型,數(shù)組名arrayName為一個(gè)合法的標(biāo)識(shí)符,[]指明該變量是一個(gè)數(shù)組類型變量。
另外一種形式對(duì)C++開發(fā)人員可能認(rèn)為非常奇怪,只是對(duì)JAVA或C#這種開發(fā)語言來說,另外一種形式可能更直觀,由于這里定義的僅僅是個(gè)變量而已,系統(tǒng)并未對(duì)事實(shí)上例化,僅僅需指明變量的類型就可以,也不需在[]指定數(shù)組大小。(第一種形式是不是僅僅是為了兼容曾經(jīng)的習(xí)慣,畢竟C語言的影響太大了?)
比如:
int intArray[]; 聲明了一個(gè)整型數(shù)組,數(shù)組中的每一個(gè)元素為整型數(shù)據(jù)。與C、C++不同,Java在數(shù)組的定義中并不為數(shù)組元素分配內(nèi)存,因此[]中不用指出數(shù)組中元素個(gè)數(shù),即數(shù)組長度,并且對(duì)于如上定義的一個(gè)數(shù)組是不能訪問它的不論什么元素的。我們必須為它分配內(nèi)存空間,這時(shí)要用到運(yùn)算符new,其格式例如以下: arrayName=new type[arraySize]; 當(dāng)中,arraySize指明數(shù)組的長度。如: intArray=new int[3];
為一個(gè)整型數(shù)組分配3個(gè)int型整數(shù)所占領(lǐng)的內(nèi)存空間。
通常,這兩部分能夠合在一起,格式例如以下:
type arrayName=new type[arraySize]; 比如: int intArray=new int[3];1.2 一維數(shù)組元素的引用
定義了一個(gè)數(shù)組,并用運(yùn)算符new為它分配了內(nèi)存空間后,就能夠引用數(shù)組中的每個(gè)元素了。數(shù)組元素的引用方式為:
arrayName[index]
當(dāng)中:index為數(shù)組下標(biāo),它能夠?yàn)檎统?shù)或表達(dá)式。如a[3],b[i](i為整型),c[6*I]等。下標(biāo) 從0開始,一直到數(shù)組的長度減1。對(duì)于上面樣例中的in-tArray數(shù)來說,它有3個(gè)元素,分別為:
intArray[0],intArray[1],intArray[2]。注意:沒有intArray[3]。
另外,與C、C++中不同,Java對(duì)數(shù)組元素要進(jìn)行越界檢查以保證安全性。同一時(shí)候,對(duì)于每一個(gè)數(shù)組都有一個(gè)屬性length指明它的長度,比如:intArray.length指明數(shù)組intArray的長度。
public class ArrayTest{ public static void main(String args[]){ int i; int a[]=new int[5]; for(i=0;i<5;i++) a[i]=i; for(i=a.length-1;i>=0;i--) System.out.println("a["+i+"]="+a[i]); } }
執(zhí)行結(jié)果例如以下:
C:/>java ArrayTest a[4]=4 a[3]=3 a[2]=2 a[1]=1 a[0]=0
該程序?qū)?shù)組中的每一個(gè)元素賦值,然后按逆序輸出。
1.3 一維數(shù)組的初始化
對(duì)數(shù)組元素能夠依照上述的樣例進(jìn)行賦值。也能夠在定義數(shù)組的同一時(shí)候進(jìn)行初始化。
比如:
int a[]={1,2,3,4,5};
用逗號(hào)(,)分隔數(shù)組的各個(gè)元素,系統(tǒng)自己主動(dòng)為數(shù)組分配一定空間。
與C中不同,這時(shí)Java不要求數(shù)組為靜態(tài)(static),事實(shí)上這里的變量相似C中的指針,所以將其作為返回值給其他函數(shù)使用,仍然是有效的,在C中將局部變量返回給調(diào)用函數(shù)繼續(xù)使用是剛開始學(xué)習(xí)的人非常easy犯的錯(cuò)誤。
2. 多維數(shù)組
與C、C++一樣,Java中多維數(shù)組被看作數(shù)組的數(shù)組。比如二維數(shù)組為一個(gè)特殊的一維數(shù)組,其每一個(gè)元素又是一個(gè)一維數(shù)組。以下我們主要以二維數(shù)為例來進(jìn)行說明,高維的情況是相似的。
2.1 二維數(shù)組的定義
二維數(shù)組的定義方式為:
type arrayName[][];
比如:
int intArray[][];
與一維數(shù)組一樣,這時(shí)對(duì)數(shù)組元素也沒有分配內(nèi)存空間,同要使用運(yùn)算符new來分配內(nèi)存,然后才干夠訪問每一個(gè)元素。
對(duì)高維數(shù)組來說,分配內(nèi)存空間有以下幾種方法:
1. 直接為每一維分配空間,如:
int a[][]=new int[2][3];
2. 從最高維開始,分別為每一維分配空間,如:
int a[][]=new int[2][]; a[0]=new int[3]; a[1]=new int[3];
完畢1中同樣的功能。這一點(diǎn)與C、C++是不同的,在C、C++中必須一次指明每一維的長度。
2.2 二維數(shù)組元素的引用
對(duì)二維數(shù)組中每一個(gè)元素,引用方式為:arrayName[index1][index2] 當(dāng)中index1、index2為下標(biāo),可為整型常數(shù)或表達(dá)式,如a[2][3]等,相同,每一維的下標(biāo)都從0開始。
2.3 二維數(shù)組的初始化
有兩種方式:
1. 直接對(duì)每一個(gè)元素進(jìn)行賦值。
2. 在定義數(shù)組的同一時(shí)候進(jìn)行初始化。
如:int a[][]={{2,3},{1,5},{3,4}};
定義了一個(gè)3×2的數(shù)組,并對(duì)每一個(gè)元素賦值。
- java數(shù)組遍歷 刪除remove(示例代碼)
- java數(shù)組排序示例(冒泡排序、快速排序、希爾排序、選擇排序)
- Java數(shù)組操作的10大方法
- java數(shù)組輸出的實(shí)例代碼
- Java數(shù)組聲明、創(chuàng)建、初始化基礎(chǔ)
- Java數(shù)組的基本操作方法整理
- java數(shù)組排序示例分享
- Java數(shù)組的基本學(xué)習(xí)教程
- 關(guān)于Java數(shù)組聲明、創(chuàng)建、初始化的相關(guān)介紹
- Java數(shù)組中的元素刪除并實(shí)現(xiàn)向前移的代碼
- 實(shí)例解析如何正確使用Java數(shù)組
相關(guān)文章
Spring?Boot統(tǒng)一處理全局異常的實(shí)戰(zhàn)教程
最近在做項(xiàng)目時(shí)需要對(duì)異常進(jìn)行全局統(tǒng)一處理,所以下面這篇文章主要給大家介紹了關(guān)于Spring?Boot統(tǒng)一處理全局異常的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2021-12-12Spring Boot RestTemplate提交表單數(shù)據(jù)的三種方法
本篇文章主要介紹了Spring Boot RestTemplate提交表單數(shù)據(jù)的三種方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-03-03Mabitis中的#與$符號(hào)區(qū)別及用法介紹
這篇文章主要介紹了Mabitis中的#與$符號(hào)區(qū)別,需要的朋友可以參考下2017-02-02SpringMVC之AbstractAnnotationConfigDispatcherSer解讀
這篇文章主要介紹了SpringMVC之AbstractAnnotationConfigDispatcherSer,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05