java學(xué)習(xí)筆記(四)數(shù)組

個人筆記,僅供參考

1、數(shù)組

1.2、定義

數(shù)組是可以存儲多個相同數(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)初始化:

聲明同時賦值:

int[] ages = {18,19,20};

取出數(shù)組中的元素應(yīng)該通過下標(biāo),下標(biāo)從0開始

第一個元素為ages[0]

數(shù)組長度數(shù)組名稱.length

動態(tài)初始化

1、先聲明,再初始化,最后賦值

int[] ages;//數(shù)組的聲明
ages = new int[3];//數(shù)組的初始化,必須指定數(shù)組元素的個數(shù),默認(rèn)值為0
ages[0] = 18;
ages[1] = 19;
ages[2] = 20

2、聲明同時初始化,最后賦值

int[] ages = new int[3];
age[0] = 18;

3、聲明同時初始化并賦值

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;//用來存儲數(shù)組元素的和值
for(int i=0;i<ages.length;++i)
{
    sum += ages[i];
}
System.out.println(sum/ages.length);

1.6、冒泡排序

以升序為例

冒泡排序會將相鄰的兩個數(shù)進(jìn)行比較,將較大的放在后面,執(zhí)行一輪后會將最大的數(shù)放在最后面,然后進(jìn)行下一輪,把第二大的數(shù)放在倒數(shù)第二位,以此類推,總共要執(zhí)行數(shù)組長度-1輪。

int[] ages = {19,16,15,17,10,5};
            /**
             * 對當(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)
            {//第一輪代碼實現(xiàn)
                if(ages[i]>ages[i+1])
                {
                    //交換位置
                    int num = 0;
                    num =ages[i];
                    ages[i] = ages[i+1];
                    ages[i+1] = num;
                }
            }

如果不使用嵌套,整個過程的代碼量會非常多

以下是使用循環(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í)行整個冒泡排序過程的代碼

1.7、數(shù)組索引越界問題

在使用數(shù)組時索引處理不當(dāng),導(dǎo)致使用了不存在的索引,從而引發(fā)錯誤,常見于循環(huán)中,對循環(huán)的次數(shù)把握不好就會出現(xiàn)此問題。

1.8、空指針異常

使用了不存在的數(shù)組(未初始化,或復(fù)制為null)

1.9、獲取數(shù)組的長度

使用數(shù)組名.length即可

注意:數(shù)組的長度初始化后不可改變

如果再次初始化會再創(chuàng)建一個同名的數(shù)組(地址不同)并覆蓋原來的數(shù)組

1.10、數(shù)組的反轉(zhuǎn)

例如:原數(shù)組{1,2,3,4} 反轉(zhuǎn)后{4,3,2,1}

有多種方法可以實現(xiàn)。

其實就是對稱位置的元素交換,需要同時使用兩個索引

需要創(chuàng)建一個空變量,然后交換對稱位置的元素即可。

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)體:三個變量倒手
         */
        for (int min = 0, max = array.length-1;min < max; min++, max--){
            int temp = array[min];
            array[min] = array[max];
            array[max] = temp;
        }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容