数组

    保存的是一组有顺序的、具有相同类型的数据。

    同一个数组中所有数据元素的数据类型都是相同的。

    可以通过数组下标来访问数组,数据元素根据下标的顺序,在内存中按顺序存放

1、数组声明

    符号“[]”说明声明的是一个数组对象

    ArrayType [ ] ArrayName; 
或者ArrayType ArrayName[ ];

2、数组创建

    使用 ArrayType[arraySize]
创建了一个数组并把新创建的数组的引用赋值给变量 ArrayName

    ArrayType [ ] ArrayName = new ArrayType[arraySize];//
使用默认值  arraySize数组长度
固定arraySize

    ArrayType [ ] ArrayName = = {value0, value1, ..., valuek};//
使用初始值

3、数组初始化和使用

    ArrayName[index]  代表数组ArrayName在index位置的数据

    数组的元素类型和数组的大小都是确定的,所以当处理数组元素时候,通过下标查找,也可以通过循环遍历

     int[] arr = {1, 2, 3, 4, 5,6,7};// 自动初始化
int[] arr1 = new int[10]; arr1[0]=1;// 赋值初始化
可用for循环遍历查找
for(int element:arr)
{
System.out.println("星期"+element);
} for(int i=0;i<arr1.length;i++)
{
System.out.println("星期"+arr1[i]);
}

4、数组复制

    从指定源数组 fromArray
中复制一个数组,复制从指定的位置 fromIndex
开始,到目标数
组 toArray,在指定位置 toIndex
结束,复制 length
个元素

    System.arraycopy(fromArray ,fromIndex,toArray,toIndex,length)

               //数组复制
System.arraycopy(arr, 0, arr1, 0, 5);
//循环遍历 使用数组下标 注意下标最大数字为数组长度减一
for(int i=0;i<arr1.length;i++)
{
System.out.println("arr1 "+arr1[i]);
}

5、数组排序

    冒泡排序:比较两个相邻的元素,将值大的元素交换至右端。

    冒泡排序的过程,是把数组元素中较小的看作是“较轻”的,对它进行“上浮”操作。从底部开始,反复地对数组进行“上浮”操作
n 次,最后得到有序数组

    N个数字要排序完成,总共进行N-1遍排序,每i趟的排序次数为(N-i)次,所以可以用双重循环语句,外层控制循环多少遍,内层控制每一遍的循环次数

                      //冒泡算法
int temp;
// arr.length - 1是为了防止数据越界
for(int i=0;i<arr.length-1;i++){
//定义每次要比较的数据随着比较的次数的减少而减少
for(int j=0;j<arr.length-i-1;j++){
//每次比较后,要对每个数组里的元素进行比较,并排序
if(arr[j]>arr[j+1]){
//进行排序
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}

选择排序:从0索引开始,依次和后面元素比较,小的往前放,第一次完毕,最小值出现在了最小索引处

//					    选择算法
for(int i=1;i<arr.length;i++){
//定义每次要比较的数据随着比较的次数的减少而减少
for(int j=1;j<arr.length-i-1;j++){
//每次比较后,要对每个数组里的元素进行比较,并排序
if(arr[j]>arr[j+1]){
//进行排序
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}

5、多维数组

    多维数组用多个索引来访问数组元素,它适用于表示表或其他更复杂的内容,多维数组是数组的数组

    以二维数组举例

    声明

        数据类型[][] 数组名称;

数据类型[] 数组名称[];

数据类型   数组名称[][];

    初始化

     数据类型[][] 数组名称 = new 数据类型[第一维的长度][第二维的长度];

数据类型[][] 数组名称;

数组名称 = new 数据类型[第一维的长度][第二维的长度];

    用法和一维数组一样,也即是一位数组的每一个元素都是一维数组

//						    int arr3[][]=new int[3][4];
int arr3[][]={{1,2,3},{1,2,3,4},{1,2}};
arr3[0][1]=1;
arr3[2][1]=2;
for(int element[]:arr3)
{
for(int el:element){
System.out.println("二维数组 "+el);
}
}
04-22 11:13
查看更多