最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java基礎(chǔ)教程之?dāng)?shù)組的定義與使用

 更新時間:2021年09月02日 14:37:48   作者:輕盈照溪水  
Java語言的數(shù)組是一個由固定長度的特定類型元素組成的集合,它們的數(shù)據(jù)類型必須相同,聲明變量的時候,必須要指定參數(shù)類型,這篇文章主要給大家介紹了關(guān)于Java基礎(chǔ)教程之?dāng)?shù)組的定義與使用的相關(guān)資料,需要的朋友可以參考下

一.數(shù)組的基本概念

  數(shù)組是一種數(shù)據(jù)類型,用來存儲同一類型值的集合,它在內(nèi)存中是一段連續(xù)的空間。通過一個整形下標(biāo)(index,或者稱之為索引)可以訪問數(shù)組中的每一個值。例如,如果a是一個整型數(shù)組,a[i]就是一個下標(biāo)為i的一個整數(shù),數(shù)組是一種引用類型。

二.數(shù)組的聲明

  聲明數(shù)組變量時,需要指出數(shù)組類型(數(shù)組元素類型后緊跟[])和數(shù)組變量的名字。例如聲明一個整型數(shù)組a:int[ ] a; 這并沒有給數(shù)組賦值,并沒有將數(shù)組初始化一個真正的數(shù)組。下面介紹數(shù)組的初始化。

三.數(shù)組的創(chuàng)建及初始化

1.數(shù)組的創(chuàng)建

數(shù)組的創(chuàng)建需要使用new操作符,new是用來申請數(shù)組空間的關(guān)鍵字,申請的空間在堆上。                

T[ ] 數(shù)組名 = new T[N];                                                                                                                

T:表示數(shù)組中存放元素的類型                                                                                                          

T[ ]:表示數(shù)組的類型                                                                                                                        

N:表示數(shù)組的長度

int[] array1 = new int[10];    //創(chuàng)建一個可以容納10個int類型元素的數(shù)組
double[] array2 = new double[6];     //創(chuàng)建一個可以容納6個double類型元素的數(shù)組 

tip:數(shù)組長度不要求是常量:new int[n]  會創(chuàng)建一個長度為n的數(shù)組

一旦創(chuàng)建了數(shù)組,就不能改變它的長度,如果需要擴展數(shù)組的大小,就應(yīng)該使用另一種數(shù)據(jù)結(jié)構(gòu)------數(shù)組列表。

2.數(shù)組的初始化

數(shù)組的初始化主要分為動態(tài)初始化和靜態(tài)初始化。

  1)動態(tài)初始化:在創(chuàng)建數(shù)組時,直接指定數(shù)組中元素的個數(shù)

int[] array1 = new int[100];

  2)靜態(tài)初始化:在創(chuàng)建數(shù)組時不直接指定數(shù)組元素個數(shù),而直接將具體的數(shù)據(jù)內(nèi)容進行指定。

int[] array1 = new int[]{0,1,2,3};
double[] array2 = new double[]{1.0,2.0,3.0};
String[] array3 = new String[]{"hello","world"};

【注意事項】

   · 靜態(tài)初始化雖然沒有指定數(shù)組的長度,編譯器在編譯時根據(jù){}中元素個數(shù)確定數(shù)組長度

   · 靜態(tài)初始化時,{}中元素類型必須與[]前數(shù)據(jù)類型相同

   ·靜態(tài)初始化不能和動態(tài)初始化結(jié)合使用

int[] array = new int[10]{1,2,3,4};  //這種寫法是錯誤的

   ·靜態(tài)初始化可以簡寫,省去后面的new T[ ]

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

   ·如果不確定數(shù)組內(nèi)容時,使用動態(tài)初始化,否則使用靜態(tài)初始化

在Java中可以允許有數(shù)組長度為0的數(shù)組,一個方法的結(jié)果為數(shù)組,結(jié)果恰好為空的話,這樣的數(shù)組很有用。例:

new elementType[0]
new elementType[] {}         //注意長度為0的數(shù)組與null不同

四.訪問數(shù)組元素

創(chuàng)建了數(shù)組就可以往數(shù)組中填元素,例如使用一個循環(huán):

int[] a = new int[100];
for(int i=0;i<100;i++){
    a[i] == i;             //給數(shù)組中填充0-100
}

創(chuàng)建數(shù)組時,所有元素都初始化為0。boolean數(shù)組的元素會初始化為false,對象數(shù)組的元素會初始化為一個特殊值null,表示這些元素還未存放任何對象。例:

String[] names = new String[10];
這會創(chuàng)建一個包含10個字符串長度的數(shù)組,所有的字符串都為null。

警告:如果創(chuàng)建了一個長度為100的數(shù)組,訪問0-99以外的下標(biāo),例如a[100]就會引發(fā)

“array index out of bounds”異常。

想獲得數(shù)組中元素的個數(shù)可以使用array.length     例如:

for(int i=0;i<array.length;i++){
    System.out.println(a[i]);
}

五.for each 循環(huán)

Java中有一種循環(huán)結(jié)構(gòu)來依次處理數(shù)組中每個元素而不使用下標(biāo)。

       這種增強的for循環(huán)的語句格式為:for(varible : collection) statement   例:

for(int i : array)
System.out.println(i);     //循環(huán)遍歷數(shù)組中的每一個元素

       當(dāng)然可以使用傳統(tǒng)的循環(huán):

for(int i=0;i<array.length;i++){
    System.out.println(array[i]);
}

for each循環(huán)的優(yōu)點是顯得更加簡潔,更不易出錯,因為我們不必考慮下標(biāo)的值。

tip:有一個更為簡單方式打印數(shù)組中的每一個值,利用Arrays類的toString方法。調(diào)用Arrays.toString(a),返回一個字符串,這個字符串包含數(shù)組元素。例如:

System.out.println(Arrays.toString(a));  //返回字符串"[0,1,2,3,4]"

六.數(shù)組的拷貝

Java中將一個數(shù)組拷貝到另一個數(shù)組中這兩個數(shù)組將引用同一個數(shù)組

int[] array1 = array2;
array1[3] = 5;     //這時array2[3] 的值也是5

如果想將一個數(shù)組的所有值拷貝到另一個數(shù)組中要使用Arrays類的copyOf方法:

int[] array2 = Arrays.copyOf(array1,array1.length);

第二個參數(shù)是新數(shù)組的長度,可以使用這個方法來增加數(shù)組的大小

array = Arrays.copyOf(array,2 * array.length);

如果數(shù)組元素是數(shù)值型,那么額外的數(shù)組元素將被賦值為0;布爾型將被賦值為false。如果長度小于原始數(shù)組長度則只拷貝前面的值。

七.數(shù)組排序

對數(shù)值型數(shù)組排序,使用Arrays類中的sort方法,例:

int[] array = {2,3,4,9,65,8,47};
Arrays.sort(array);
for(int i : array)
System.out.println(i);

通過這可以將數(shù)組進行排序然后進行打印出來。

八.二維數(shù)組

創(chuàng)建并初始化一個二維數(shù)組:

int[][] array = {{1,2,3},{4,5,6},{7,8,9}};

初始化完成就可以通過array[i][j]訪問數(shù)組元素。

for each循環(huán)不能自動處理二維數(shù)組中的每一個元素。它會循環(huán)處理行,這些行本身就是一維數(shù)組,所以可以嵌套循環(huán)訪問二維數(shù)組中的每一個元素

for(int[] row : array)
   for(int value : row)
      do something with value

要想快速打印一個二維數(shù)組可以調(diào)用:

System.out.println(Arrays.deepToString(array));
//輸出格式:[[1,2,3],[4,5,6],[7,8,9]]

tip:二維數(shù)組本質(zhì)上也是一維數(shù)組。

總結(jié)

到此這篇關(guān)于Java基礎(chǔ)教程之?dāng)?shù)組的定義與使用的文章就介紹到這了,更多相關(guān)Java數(shù)組定義與使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Android讀取本地或網(wǎng)絡(luò)圖片并轉(zhuǎn)換為Bitmap

    Android讀取本地或網(wǎng)絡(luò)圖片并轉(zhuǎn)換為Bitmap

    這篇文章主要為大家詳細(xì)介紹了Android讀取本地或網(wǎng)絡(luò)圖片,并轉(zhuǎn)換為Bitmap,感興趣的小伙伴們可以參考一下
    2016-08-08
  • springboot中spring.profiles.include的妙用分享

    springboot中spring.profiles.include的妙用分享

    這篇文章主要介紹了springboot中spring.profiles.include的妙用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Lombok的詳細(xì)使用及優(yōu)缺點總結(jié)

    Lombok的詳細(xì)使用及優(yōu)缺點總結(jié)

    最近在學(xué)Mybatis,接觸到了Lombok的使用,所以寫一篇文章記錄一下,包括lombok的安裝及使用優(yōu)缺點,感興趣的朋友跟隨小編一起看看吧
    2021-07-07
  • springboot線程池監(jiān)控的簡單實現(xiàn)

    springboot線程池監(jiān)控的簡單實現(xiàn)

    本文主要介紹了springboot線程池監(jiān)控的簡單實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Java數(shù)據(jù)結(jié)構(gòu)中堆的向下和向上調(diào)整解析

    Java數(shù)據(jù)結(jié)構(gòu)中堆的向下和向上調(diào)整解析

    堆是一顆完全二叉樹,在這棵樹中,所有父節(jié)點都滿足大于等于其子節(jié)點的堆叫大根堆,所有父節(jié)點都滿足小于等于其子節(jié)點的堆叫小根堆。堆雖然是一顆樹,但是通常存放在一個數(shù)組中,父節(jié)點和孩子節(jié)點的父子關(guān)系通過數(shù)組下標(biāo)來確定
    2021-11-11
  • Spring Cloud負(fù)載均衡及遠(yuǎn)程調(diào)用實現(xiàn)詳解

    Spring Cloud負(fù)載均衡及遠(yuǎn)程調(diào)用實現(xiàn)詳解

    這篇文章主要介紹了Spring Cloud負(fù)載均衡及遠(yuǎn)程調(diào)用實現(xiàn)詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-08-08
  • Ribbon負(fù)載均衡算法原理與使用介紹

    Ribbon負(fù)載均衡算法原理與使用介紹

    在微服務(wù)中,對服務(wù)進行拆分之后,必然會帶來微服務(wù)之間的通信需求,而每個微服務(wù)為了保證高可用性,又會去部署集群,那么面對一個集群微服務(wù)進行通信的時候,如何進行負(fù)載均衡也是必然需要考慮的問題
    2022-09-09
  • Spring中@order注解用法實戰(zhàn)教程

    Spring中@order注解用法實戰(zhàn)教程

    @Order注解主要用來控制配置類的加載順序,數(shù)字越小,越先加載,下面這篇文章主要給大家介紹了關(guān)于Spring中@order注解用法的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • 一文帶你搞懂Java中的遞歸

    一文帶你搞懂Java中的遞歸

    這篇文章主要為大家詳細(xì)介紹了Java中的遞歸的實現(xiàn)以及應(yīng)用,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Java有一定幫助,需要的可以參考一下
    2022-10-10
  • Java對zip,rar,7z文件帶密碼解壓實例詳解

    Java對zip,rar,7z文件帶密碼解壓實例詳解

    在日常業(yè)務(wù)中,會遇到一些瑣碎文件需要打包到一個壓縮包中上傳,業(yè)務(wù)方在后臺接收到壓縮包后自行解壓,然后解析相應(yīng)文件。而且可能涉及安全保密,因此會在壓縮時帶上密碼,要求后臺業(yè)務(wù)可以指定密碼進行解壓。本文將用Java解決這一問題,需要的可以參考一下
    2022-07-07

最新評論

巴马| 沙坪坝区| 顺平县| 新化县| 博野县| 黄浦区| 遂溪县| 临汾市| 固始县| 涟水县| 额济纳旗| 通化市| 长兴县| 广州市| 太保市| 宝鸡市| 桐柏县| 濮阳市| 尉氏县| 克东县| 姜堰市| 泰州市| 吴堡县| 仁布县| 门头沟区| 晴隆县| 和顺县| 疏附县| 普安县| 客服| 临邑县| 肃北| 巴南区| 广宗县| 岱山县| 资兴市| 黄浦区| 卓资县| 康平县| 义乌市| 正阳县|