個(gè)人筆記薇搁,僅供參考
1、數(shù)組
1.2祟昭、定義
數(shù)組是可以存儲(chǔ)多個(gè)相同數(shù)據(jù)類型的數(shù)據(jù)結(jié)構(gòu)
1.3咧栗、數(shù)組的聲明
數(shù)據(jù)類型[] 數(shù)組的名稱 int[] ages;
數(shù)據(jù)類型 數(shù)組的名稱[] String names[];
1.4、數(shù)組的初始化
靜態(tài)初始化:
聲明同時(shí)賦值:
int[] ages = {18,19,20};
取出數(shù)組中的元素應(yīng)該通過下標(biāo)衣洁,下標(biāo)從0開始
第一個(gè)元素為ages[0]
數(shù)組長度數(shù)組名稱.length
動(dòng)態(tài)初始化:
1墓捻、先聲明,再初始化坊夫,最后賦值
int[] ages;//數(shù)組的聲明
ages = new int[3];//數(shù)組的初始化砖第,必須指定數(shù)組元素的個(gè)數(shù),默認(rèn)值為0
ages[0] = 18;
ages[1] = 19;
ages[2] = 20
2撤卢、聲明同時(shí)初始化,最后賦值
int[] ages = new int[3];
age[0] = 18;
3梧兼、聲明同時(shí)初始化并賦值
int[] ages = new int[] {18,19,20};
1.5放吩、數(shù)組的求和
int[] ages = {23,12,56,78,34,22,11,45,34,56};
int sum = 0;//用來存儲(chǔ)數(shù)組元素的和值
for(int i=0;i<ages.length;++i)
{
sum += ages[i];
}
System.out.println(sum/ages.length);
1.6、冒泡排序
以升序?yàn)槔?/p>
冒泡排序會(huì)將相鄰的兩個(gè)數(shù)進(jìn)行比較羽杰,將較大的放在后面渡紫,執(zhí)行一輪后會(huì)將最大的數(shù)放在最后面,然后進(jìn)行下一輪考赛,把第二大的數(shù)放在倒數(shù)第二位惕澎,以此類推,總共要執(zhí)行數(shù)組長度-1輪欲虚。
int[] ages = {19,16,15,17,10,5};
/**
* 對(duì)當(dāng)前數(shù)組進(jìn)行升序排列
* 冒泡排序
* 第一輪:將數(shù)組中的最大值放到了最后
* 16 19 15 17 10 5 (1-2)
* 16 15 19 17 10 5 (2-3)
* 16 15 17 19 10 5 (3-4)
* 16 15 17 10 19 5 (4-5)
* 16 15 17 10 5 19 (5-6)
*
*/
for(int i=0;i<ages.length-1;++i)
{//第一輪代碼實(shí)現(xiàn)
if(ages[i]>ages[i+1])
{
//交換位置
int num = 0;
num =ages[i];
ages[i] = ages[i+1];
ages[i+1] = num;
}
}
如果不使用嵌套集灌,整個(gè)過程的代碼量會(huì)非常多
以下是使用循環(huán)嵌套的
for(int j=1;j<ages.length;++j)
{ //j表示數(shù)組排序要比較的輪數(shù)
for(int i=0;i<ages.length-j;++i){
if(ages[i]>ages[i+1]){
//交換位置
int num = 0;
num = ages[i];
ages[i] = ages[i+1];
ages[i+1] = num;
}
}
}
這是一段可以執(zhí)行整個(gè)冒泡排序過程的代碼
1.7、數(shù)組索引越界問題
在使用數(shù)組時(shí)索引處理不當(dāng)复哆,導(dǎo)致使用了不存在的索引欣喧,從而引發(fā)錯(cuò)誤,常見于循環(huán)中梯找,對(duì)循環(huán)的次數(shù)把握不好就會(huì)出現(xiàn)此問題唆阿。
1.8、空指針異常
使用了不存在的數(shù)組(未初始化锈锤,或復(fù)制為null)
1.9驯鳖、獲取數(shù)組的長度
使用數(shù)組名.length
即可
注意:數(shù)組的長度初始化后不可改變
如果再次初始化會(huì)再創(chuàng)建一個(gè)同名的數(shù)組(地址不同)并覆蓋原來的數(shù)組
1.10、數(shù)組的反轉(zhuǎn)
例如:原數(shù)組{1,2,3,4} 反轉(zhuǎn)后{4,3,2,1}
有多種方法可以實(shí)現(xiàn)久免。
其實(shí)就是對(duì)稱位置的元素交換浅辙,需要同時(shí)使用兩個(gè)索引
需要?jiǎng)?chuàng)建一個(gè)空變量,然后交換對(duì)稱位置的元素即可阎姥。
int[] array = {10,20,30,40,50};
//遍歷數(shù)組本來的樣子
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
System.out.println("==========");
/**
* 初始化語句:int min = 0, max = array.length -1
* 條件判斷: min<max
* 步進(jìn)表達(dá)式:min++,max++
* 循環(huán)體:三個(gè)變量倒手
*/
for (int min = 0, max = array.length-1;min < max; min++, max--){
int temp = array[min];
array[min] = array[max];
array[max] = temp;
}