数组:
数组:是一种数据类型的集合,是一个容器
格式一:
元素类型[ ] 数组名=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]
图解:
遍历: