數組:
數組:是一種數據類型的集合,是一個容器
格式一:
元素類型[ ] 數組名=new 元素類型[ 元素個數或數組長度]
格式二:
元素類型[ ] 數組名= {元素,元素…}排列的索引是從零開始
java中內存分配及棧和堆的區別:
特別注意地址的含義,int[ ] arr1={1,2,3}
arr1不等於{1,2,3}而是通過地址找到相應的數組
arr1=null;等於空(指向地址爲空,堆內的數組沒有發生改變)
int [ ] arr2=arr1(是傳遞了地址而不是數組)
遍歷:
for(int a:arr1){ 高級for循環,打印(a)遍歷數組
System.out.println(a);
}
int[] b = {22,11,13,15,12,20};
//找最大值
int max = b[0];
for(int i:b){
if(i>max){
max = i;
}
}
System.out.println(max);
排序:
冒泡排序:
public static void main(String[]args){
//數組排序從小到大
int[] a=new int[6];
int[] b={99,80,100,4,71,60};
int t=0;
for(int j=0;j<b.length-1;j++){
for(int i=0;i<b.length-1-j;i++){//(依次比較大,的與後一位交換位置,
if(b[i]>b[i+1]){ //才能真正的排序從小到大所以需要再一次的循環)
t=b[i];
b[i]=b[i+1];
b[i+1]=t;
}
}
}
選擇排序:
public static void main(String[]args){
//數組排序從小到大(選擇排序)
int[] a=new int[6];
int[] b={99,80,100,4,71,60};
for(int j=0;j<b.length-1;j++){
int max=0;
for(int i=0;i<b.length-1-j;i++){//把最大的放在最後面,-j 在剩餘的中尋找最大再放在最後面,此時的最後和前面的最後面不一樣是-j剩餘數的最後面
if(b[i]>max){
max=b[i];
b[i]=b[b.length-1-j];//改變交換位置爲第一個位置 就變成了從大到小
b[b.length-1-j]=max;
}
}
}
二維數組:
格式:
1、數據類型[ ] [ ]數據名稱=new 數據名稱[m] [n]
2、數據類型[ ] [ ] 數據名稱={{1,2,3}{5,6,4}{4,8,9}};
3、數據類型 數組名稱[ ][ ]=new 數據名稱[m][n]
4、數據類型 [ ]數組名稱[ ]=new 數據名稱[m][n]
圖解:
遍歷: