A:数组定义格式
数据类型[] 数组名 = new 数据类型[数组的长度];
a:动态初始化 只指定长度,由系统给出初始化值
int[] arr = new int[5];
b:静态初始化 给出初始化值,由系统决定长度
int[] arr = new int[]{1,2,3,4,5};
int[] arr = {1,2,3,4,5}; 这种静态初始化不允许先声明后赋值
B:动态初始化的格式:
数据类型[] 数组名 = new 数据类型[数组长度];
下面我们来说一说一维数组:
1:一维数组的遍历
int[]arr={1,2,3,4,5};
① for (int i = 0; i < arr.length; i++) { ①遍历的第一种方式
System.out.print(arr[i]+" ");
}
② for (int i: arr) { ②遍历的第二种方式
System.out.print(i+" ");
}
2: 获取一维数组的最大值
int[]arr={1,2,3,4,5};
int max = arr[0]; 定义变量记录住第一个位置的值
for (int x = 1;x < arr.length ;x++ ) { 遍历数组,从第二个位置
if (arr[x] > max) { 与max中的值比较,如果比max值大
max = arr[x]; 将max中的值替换掉
}
}
return max; 将最大值返回
3:一维数组的正序遍历
int[] arr = {11,22,33,44,55};
/*for (int x = 0;x < arr.length ;x++ ) {
System.out.println(arr[x]);
} //11,22,33,44,55
4:一维数组的倒序遍历
int[] arr = {11,22,33,44,55};
for (int x = arr.length - 1;x >= 0 ;x-- ) {
System.out.println(arr[x]);
} //55,44,33,22,11
5:一维数组的反转操作
int[] arr = {11,22,33,44,55};
for (int x = 0;x < arr.length / 2 ; x++) {
int temp = arr[x];
arr[x] = arr[arr.length-1-x];
arr[arr.length-1-x] = temp; //55,44,33,22,11
6:数组元素查找(查找指定元素第一次在数组中出现的索引)
int[] arr = {44,33,55,22,11,66};
int index = getIndex(22,arr);
根据数组元素获取数组元素的索引
1,明确返回值类型int
2,明确参数列表,int key,int[] arr
public static int getIndex(int key,int[] arr) {
for (int x = 0;x < arr.length ;x++ ) {
if (key == arr[x]) {
return x;
}
}
return -1;
7:
①快速排序
int[] arr1 = {78, 87, -4, -33, 3, 66, 99};
Arrays.sort(arr1);
for (int i : arr1) {
System.out.print(i+" "); //-33 -4 3 66 78 87 99
②冒泡排序
int [] arr3={56,76,-34,12,98,3,77,33};
for(int j=0;j<arr3.length-1;j++){
for(int i=0;i<arr3.length-1;i++){
判断后一个数是否大于前一个数
if(arr3[i+1]>arr3[i]){
将前一个数的值给q
int q=arr3[i];
将后一个数的值给前一个数
arr3[i]=arr3[i+1];
将q(即前一个数的值)给后一个数
arr3[i+1]=q;
}
}
}
for (int i : arr3) {
System.out.print(i+" ");
}
}/*又在外面套一个循环,让它运行八次,这样就可以了。它会把前面大的数一个一个往后移,最后完成!
|
|