数组
一维数组初始化的三种方法:
1 int a[]=new int[3];
a[0]=7;
a[1]=3;
a[2]=6;
2 int b=new int[] {5,1,3};
3 int c[] ={8,4,9}
注意
数组的下标从0开始;
三种初始化方法不能混用,不能给方括号和大括号同时赋值
数组的length属性
1 length返回的是int型
2 数组长度不可以定义为负数
3 length的值是常量
不规则数组是可以存在的,当先定义行再定义不同列时就会出现
二维数组两个方括号第一个必须写,第二个可以不写
遍历数组,通常用for循环
遍历二维数组,用双for循环或者双foreach循环
填充和批量替换数组元素
Arrays.fill(arr ,int value);
Arrays.fill(arr ,int fromindex ,int toindex, int value);
Arrays的使用需要用Alt+/引用
复制数组
Arrays.copyOf(arr, newlegth);
Arrays.copyOfRange(arr, fromindex, toindex);
要注意 toindex必须比fromindex大
冒泡排序:
两次for循环,外层循环控制比较的轮数(从1开始),
i=1; I < a.length; i++
内层循环则从第一个元素开始与其他各元素进行比较
j=0; j<a.length-i; j++
循环体则是利用一个临时变量对两个元素进行排序
if(a[j]>a[j+1]){
int tmp =a[j];
a[j]=a[j+1];
a[j+1]=tmp;
}
如果想改变大小方向,就改变选择条件中(< 和 >)
选择排序
for(int i=1;i<a.length;i++) {
int index=0;//保存最大元素所在位置
for(int j=1;j<=a.length-i;j++) {
if(a[index]<a[j]){
index=j;
}
}
int tmp =a[a.length-i];
a[a.length-i]=a[index];
a[index]=tmp;
}
Arrays.Sort可以对数组进行排序,只需要一行代码,但也有一个弊端就是只能升序不能降序