每日已學(xué)習(xí)內(nèi)容

數(shù)組定義

數(shù)組是一種數(shù)據(jù)結(jié)構(gòu),是用來存儲同一數(shù)據(jù)類型的有序集合,并可以用下標索引訪問數(shù)組中的值。簡而言之就是開辟了一段連續(xù)的有具有索引的存儲單元。

唯一性:不可以存儲不同的數(shù)據(jù)類型。

快速訪問:可以通過下標 索引符號[ ] 快速訪問數(shù)據(jù)。

客戶端程序員未賦值,JVM會自動賦值(int自動賦值0,boolean自動賦值false,引用類型自動賦值null)

可以int [] a定義數(shù)組,也可以int a []定義數(shù)組 前者更符合java設(shè)計思想 后者是C程序員的習(xí)慣。

2.for each 循環(huán)

for each只讀取容器內(nèi)的數(shù)據(jù)而不會更改數(shù)據(jù)。

for(variable : collection) 語句塊,collection 這一集合表達式必須是一個數(shù)組或者是一個實現(xiàn)了 Iterable 接口的類對象.-----------《java核心技術(shù)》

3.數(shù)組初始化

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

int [] a =new int[9];

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

new int {1,2,3,4,5,6,7,8,9,};//匿名初始化--------------------------《java核心技術(shù) | 》

small Primes = new int[] { 17, 19, 23, 29, 31, 37 }; 是 int [] anonymous = { 17, 19, 23, 29, 31, 37 };

smallPrimes = anonymous; 的簡寫形式--------------------------------《java核心技術(shù) | 》

6.數(shù)組的引用本質(zhì)其實就是指針(c/c++)

當我們定義兩個數(shù)組 int a1[]={1,2,3,4,5,6,7,8,9};

int b1[]={1,2,3,} //故意長度不相等

很明顯a這時候報了數(shù)組越界異常,這時候變量a指向了b1。(下圖虛線 是賦值語句的結(jié)果,a指向b1)

4.數(shù)組在內(nèi)存中存儲形式

4.1 int類型數(shù)組

以int [] a =new int[9];為例子,在棧內(nèi)存(stack)存放內(nèi)存開辟空間用來存放變量a它是堆內(nèi)數(shù)組的應(yīng)用并指向數(shù)組第一個地址 ,在堆(heap)開辟一段連續(xù)的內(nèi)存空間 且空間長度是int*9用于存放這九個int數(shù)據(jù)。

5.常用算法

5.1插入算法

public class Add{

public static void main(String[] args){

// 一個有序的數(shù)組,向該數(shù)組中添加一個元素,數(shù)組依然有序。

int[] arr = {1,3,7,9,12,20,0};

int t = 0;

// 【1】找位置

int loc = -1; // 表示t應(yīng)該添加到的位置

for(int i = 0;i<arr.length-1;i++){

if(arr[i] >= t){

loc = i;

break;

}

}

System.out.println("loc = "+loc);

if(loc < 0){ // 沒找到合適的位置

arr[arr.length-1] = t;

}else{

// 【2】依次后移

for(int j=arr.length-1;j>loc;j--){

arr[j] = arr[j-1];

}

// 【3】添加插入的值

arr[loc] = t;

}

// 驗證

for(int i = 0;i<arr.length;i++){

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

}

}

}

5.2 刪除算法

5.3冒泡排序

public class Test10{

public static void main(String[] args){

// 對一個無序的數(shù)組進行排序

int[] arr = {10,5,3,4,2,9,7};

int tmp = 0;

for(int i=0;i<arr.length-1;i++){ // 外層控制趟數(shù)

for(int j=0;j<arr.length-1-i;j++){ // 兩兩比較

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

tmp = arr[j];

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

arr[j+1] = tmp;

}

}

}

for(int i=0;i<arr.length;i++){

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

}

}

}

?著作權(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)容

  • 在C語言中,五種基本數(shù)據(jù)類型存儲空間長度的排列順序是: A)char B)char=int<=float C)ch...
    夏天再來閱讀 4,044評論 0 2
  • 第四天 數(shù)組【悟空教程】 第04天 Java基礎(chǔ) 第1章數(shù)組 1.1數(shù)組概念 軟件的基本功能是處理數(shù)據(jù),而在處理數(shù)...
    Java幫幫閱讀 1,682評論 0 9
  • 【程序1】 題目:古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第三個月后每個月又生一對兔...
    開心的鑼鼓閱讀 3,394評論 0 9
  • Java經(jīng)典問題算法大全 /*【程序1】 題目:古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子...
    趙宇_阿特奇閱讀 2,077評論 0 2
  • 人長大后真的是要化妝 不為別的就為這生活中無數(shù)想哭的瞬間里還可以想到老娘的妝不能花
    王木木_mua閱讀 256評論 0 0

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