1.数组
1.1数组的声明
声明数组和生成变量差不多,知识声明数组需要[],声明数组需要声明数组名和数据类型。
声明数组格式:
数据类型 [] 数组名;//第一种
//例如
int num [];
数据类型 数组名[] ;//第二种
int [] num1;
//建议使用第二种声明的方式
数组的初始化
数组的初始化和变量的初始化类似,数组有三种初始化,前两种在声明的时候初始化,第三种在声明后初始化。
初始化格式:数据值中间必须用逗号隔开(,)。
//第一种初始化 声明并初始化
// 数据类型 [] 数组名 ={值1,值2,值3,值4};
int [] num ={10,20,30,40,.........};
//第二种
//数据类型 [] 数组名 = new 数据类型 [] {值1,值2,值3,值4,.......};
int [] num1 =new int []{10,20,30,40,50};
//第三种:先声明后初始化 通过索引值来进行初始化。
// 数据类型 [] 数组名 =new 数组类型[数组元素的个数];
int [] num2 =new int [5];
num2[0]=10;
num2[1]=20;
num2[2]=30;
num2[3]=40;
num2[4]=50;
输出方法:
- 可是使用循环语句迭代输出。
- 可以根据索引值(下标)来进行输出。
//第一种
int [] num ={10,20,30,40,.........};
for(int i=0;i<num.length;i++){
System.out.println(num[i]);
}
//第二种
int [] num1 =new int [] {10,20,30,40,.........};
for(int j=0; j<num1.length;j++){
System.out.println(num1[j]);
}
//第三种
int [] num2 =new int [5];
num2[0]=10;
num2[1]=20;
num2[2]=30;
num2[3]=40;
num2[4]=50;
System.out.println(num2[0]);
System.out.println(num2[1]);
System.out.println(num2[2]);
System.out.println(num2[3]);
System.out.println(num2[4]);
注意:
- 数组里面存放的数据类型必须一致,否则会报异常。
- 声明的数组如果想要输出的话 必须初始化否则,如果没有初始化输出数组的话 不会报错也可以输出 但是数据值为null。
- 第三种数组初始化的话 长度必须写。
1.2多维数组
初始化格式:和一维数组是相同的,每加一个维度则加上一个[],多维数组其实就是数组里面的数组,二维数组里面的元素其实就是一个个的一维数组。
//方式一
int [] [] arr{{值1,值2,值3....},{值1,值2,值3,....},.........};
//方式二
int [] [] arr1=new int [] []{{值1,值2,值3....},{值1,值2,值3,....},.........};
//方式三
int [] [] arr2=new [2] [1];
arr2[0][0]=10;
arr2[0][1]=20;
arr2[1][0]=30;
arr2[1][1]=40;
//方式三1
int [][] arr3=new int[2][];
for (int i = 0; i < arr3.length ; i++) {
for (int j = 0; j < arr3[i].length; j++) {
arr3[i][j]=10*1+1; System.out.println(arr3[i][j]);
}
}
2.数组排序算法
数组中有很多常见的排序算法,包括直接选择排序、冒泡排序、升序排序。
直接选择排序:
指每一次都从待排序的数据元素中选择出最小值(最大值)的一个元素,顺序的房子啊已排序好的数列的最末端,知道全部元素排序完为止。
冒泡排序:
指比较两个相邻元素的值,如果满足条件就进行交换位置,直到所有相邻元素都不满足为止。
示例:
//直接排序 从小到大
int [] arr{10,2,40,50,10,30};
int tomp=0;//定义一个临时存储器
for (int i = 0; i < arr.length ; i++) {
for (int j = i+1; j < i; j++) {
if(arr[i]>arr[j]){
tomp=arr[i];
arr[i]=arr[j];
arr[j]=tomp;
}
}
}
for(int k=0;k<arr.length;k++){
System.out.println(arr[k]+" ");
}
//冒泡排序 从小到大
int [] arr1{10,2,40,50,10,30};
int tomp1=0;//定义一个临时存储器
for (int i = 0; i < arr1.length-1 ; i++) {
for (int j = 0; j < arr[i].length-1-i; j++) {
if(arr[j]>arr[j+1]){
tomp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=tomp;
}
}
}
for(int k=0;k<arr1.length;k++){
System.out.println(arr1[k]+" ");
}
升序排序
升序排序所使用的时Arrays,(Arrays)存在于util包中,使用的时候需要导包,(import java.util.Arrays)
示例:
import java.util.Arrays;
int [] arr{10,2,40,50,10,30};
for (int i = 0; i < arr.length ; i++) {
//排序前
System.out.println(arr[i]+" ");
}
Arrays.sort(arr);//数组是什么类型sort就必须使用什么类型
for(int k=0;k<arr.length;k++){
//排序后
System.out.println(arr[k]+" ");
}