




版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 陜西省西安市工大附中2025屆七下生物期末學(xué)業(yè)水平測試模擬試題含解析
- 2025屆湖北省武漢市七一(華源)中學(xué)生物七下期末教學(xué)質(zhì)量檢測模擬試題含解析
- 2025年湖南張家界市武陵源旅游產(chǎn)業(yè)發(fā)展有限公司招聘筆試參考題庫含答案解析
- 2025年安徽宣城市涇縣牛嶺水庫投資開發(fā)有限公司招聘筆試參考題庫含答案解析
- 2025年安徽宿州現(xiàn)代制鞋產(chǎn)業(yè)園招商投資有限公司招聘筆試參考題庫含答案解析
- 2025年貴州畢節(jié)市烏蒙云大數(shù)據(jù)產(chǎn)業(yè)發(fā)展有限公司招聘筆試參考題庫含答案解析
- 2025年福建莆田市涵江國有資產(chǎn)投資營運有限公司招聘筆試參考題庫含答案解析
- 2025年福建省水利投資開發(fā)集團連城水務(wù)有限公司招聘筆試參考題庫含答案解析
- 2025年安徽靈璧縣通靈融資擔(dān)保有限公司招聘筆試參考題庫附帶答案詳解
- 北京中考英語詞匯單選題100道及答案
- 工程造價咨詢的協(xié)調(diào)配合及服務(wù)措施
- Module 10 Unit 1 We are going to different school(教案)外研版(三起)英語六年級下冊
- 2022-2023學(xué)年廣東省深圳市高二(下)期末數(shù)學(xué)試卷含答案
- 脊柱側(cè)彎手術(shù)配合
- 市場調(diào)查與預(yù)測題庫+答案
- JT-T-398-2013港口輸油臂行業(yè)標準
- 湖南省建設(shè)工程竣工驗收備案表
- 汽車4s店安全生產(chǎn)管理制度范文(20篇)
- (正式版)SHT 3075-2024 石油化工鋼制壓力容器材料選用規(guī)范
- 村委會地震演練方案及流程
- 脫甲烷塔結(jié)構(gòu)及工藝流程
評論
0/150
提交評論