Java超細致講解數(shù)組的使用_第1頁
Java超細致講解數(shù)組的使用_第2頁
Java超細致講解數(shù)組的使用_第3頁
Java超細致講解數(shù)組的使用_第4頁
Java超細致講解數(shù)組的使用_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第Java超細致講解數(shù)組的使用目錄數(shù)組的定義數(shù)組的三種語法格式遍歷數(shù)組的三種方式數(shù)組的使用數(shù)組的練習(xí)數(shù)組拷貝查找數(shù)組中的指定元素(二分查找)判斷數(shù)組是否有序數(shù)組排序(冒泡排序)數(shù)組逆序二維數(shù)組小結(jié)

數(shù)組的定義

數(shù)組本質(zhì)上就是讓我們能批量創(chuàng)建相同類型的變量。

數(shù)組的三種語法格式

1、數(shù)據(jù)類型[]數(shù)組名稱=new數(shù)據(jù)類型[]{初始化數(shù)據(jù)};

例如:

int[]arr=newint[]{1,2,3};

注意:[]里面不能寫數(shù)字?。?!

2、數(shù)據(jù)類型[]數(shù)組名稱=new數(shù)據(jù)類型[元素個數(shù)];

例如:

publicclassTsetModer{

publicstaticvoidmain(String[]args){

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

for(intx:arr){

System.out.print(x+"");

}

int[]arr=newint[3];

3、數(shù)據(jù)類型[]數(shù)組名稱={初始化數(shù)據(jù)};

例如:

int[]arr={1,2,3};

注意:[]里面不能寫數(shù)字!??!

遍歷數(shù)組的三種方式

1、用for循環(huán)遍歷數(shù)組

例如:

publicclassTsetModer{

publicstaticvoidmain(String[]args){

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

for(inti=0;iarr.length;i++){

System.out.print(arr[i]+"");

}

運行結(jié)果:

2、用for-each來遍歷數(shù)組

舉個例子:

publicclassTsetModer{

publicstaticvoidmain(String[]args){

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

for(intx:arr){

System.out.print(x+"");

}

運行結(jié)果:

3、借助Java中操作數(shù)組的工具類Arrays.toString(將參數(shù)的數(shù)組以字符的形式輸出)

例如:

publicclassTsetModer{

publicstaticvoidmain(String[]args){

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

System.out.println(Arrays.toString(arr));

}

運行結(jié)果:

我們可以看到它打印出來的形式跟上面兩種方法都不一樣,我們可以用to.String來模擬實現(xiàn)Arrays.toString。

publicclassTsetModer{

publicstaticStringtoString(int[]arr){

Stringstr="[";

for(inti=0;iarr.length;i++){

str=str+arr[i];

if(i!=arr.length-1){

str=str+",";

str=str+"]";

returnstr;

publicstaticvoidmain(String[]args){

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

Stringret=toString(arr);

System.out.println(ret);

}

數(shù)組的使用

數(shù)組傳參

先來看個例子:

publicstaticvoidmain(String[]args){

int[]arr={1,2,3};

func(arr);

System.out.println("arr[0]="+arr[0]);

publicstaticvoidfunc(int[]a){

a[0]=10;

System.out.println("a[0]="+a[0]);

}

運行結(jié)果:

我們可以知道,在函數(shù)內(nèi)部修改數(shù)組內(nèi)容,函數(shù)外部也發(fā)生變化。此時arr是一個引用。當arr傳參時,是按照引用傳參。

引用:引用相當于一個別名,也可以理解成一個指針.創(chuàng)建一個引用只是相當于創(chuàng)建了一個很小的變量,這個變量保存了一個整數(shù),這個整數(shù)表示內(nèi)存中的一個地址.

此時a相當于接收了arr的地址,arr和a同時指向一個數(shù)組,當a進行操作數(shù)組時,數(shù)組內(nèi)容改變,所以arr[0]和a[0]打印結(jié)果一樣。

數(shù)組的練習(xí)

數(shù)組拷貝

第一種方法:用for循環(huán)遍歷數(shù)組拷貝

publicstaticint[]copyArr(int[]arr){

int[]ret=newint[arr.length];

for(inti=0;iarr.length;i++){

ret[i]=arr[i];

returnret;

publicstaticvoidmain(String[]args){

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

int[]ret=copyArr(arr);

System.out.println(Arrays.toString(arr));

System.out.println(Arrays.toString(ret));

}

運行結(jié)果:

第二種方法:

Arrays.copyOf--庫里面的數(shù)組拷貝函數(shù)

Arrays.copeOf(數(shù)組名,數(shù)組長度)

舉個例子:

publicstaticvoidmain(String[]args){

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

int[]ret=Arrays.copyOf(arr,arr.length);

System.out.println(Arrays.toString(arr));

System.out.println(Arrays.toString(ret));

}

運行結(jié)果:

第三種方法:

拷貝部分元素--Arrays.copyRange

Arrays.copyRange(數(shù)組名,拷貝開始下標,拷貝結(jié)束下標);

(開始拷貝下標和結(jié)束下標是左閉右開?。?/p>

舉個例子:

publicstaticvoidmain(String[]args){

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

int[]ret=Arrays.copyOfRange(arr,2,5);

System.out.println(Arrays.toString(arr));

System.out.println(Arrays.toString(ret));

}

運行結(jié)果:

查找數(shù)組中的指定元素(二分查找)

publicstaticintbinarySearch(int[]arr,intx){

intleft=0;

intright=arr.length-1;

while(leftright){

intmid=(left+right)/2;

if(arr[mid]x){

right=mid;

elseif(arr[mid]x){

left=mid;

else{

returnmid;

return-1;

publicstaticvoidmain(String[]args){

int[]arr={1,3,5,7,9};

inti=binarySearch(arr,5);

System.out.println("找到了下標是:"+i);

}

判斷數(shù)組是否有序

publicstaticvoidmain(String[]args){

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

System.out.println(bonisOrder(arr));

publicstaticbooleanbonisOrder(int[]arr){

for(inti=0;iarr.length-1;i++){

if(arr[i]arr[i+1]){

returnfalse;

returntrue;

}

數(shù)組排序(冒泡排序)

publicstaticvoidbubbleSort(int[]arr){

for(inti=0;iarr.length-1;i++){

for(intj=0;jarr.length-i-1;j++){

if(arr[j]arr[j+1]){

inttmp=arr[j];

arr[j]=arr[j+1];

arr[j+1]=tmp;

publicstaticvoidmain(String[]args){

int[]arr={1,6,3,2,7};

bubbleSort(arr);

for(intx:arr){

System.out.print(x+"");

}

數(shù)組逆序

設(shè)定兩個下標,分別指向第一個元素和最后一個元素.交換兩個位置的元素。然后讓前一個下標自增,后一個下標自減,循環(huán)繼續(xù)即可。

publicclassTsetModer{

publicstaticvoidmain(String[]args){

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

reverse(arr);

System.out.println(Arrays.toString(arr));

publicstaticvoidreverse(int[]arr){

intleft=0;

intright=arr.length-1;

while(leftright){

inttmp=arr[left];

arr[left]=arr[right];

arr[right]=tmp;

left++;

right--;

}

二維數(shù)組

二維數(shù)組本質(zhì)上也就是一維數(shù)組,只不過每個元素又是一個一維數(shù)組。

基本語法:

數(shù)據(jù)類型[][]數(shù)組名稱=new數(shù)據(jù)類型[行數(shù)][列數(shù)]{初始化數(shù)據(jù)};

看個例子:

publicstaticvoidmain(String[]args){

int[][]arr={{1,2,3},{5,6,7,8},{9,10,11,12}};

for(introw=0;rowarr.length;row++){

for(intcol=0;colarr[row].length;col++){

System.out.printf("%d\t",arr[row][col]);

System.out.println("");

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論