java 基础知识五 数组

java  基础知识五  数组


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

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

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


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

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

2、数组创建

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

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

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

3、数组初始化和使用

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

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

	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]);
		        }


3、数组复制

从指定源数组 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]);
		        }



4、数组排序 


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

冒泡排序的过程,是把数组元素中较小的看作是 ,对它进行上浮操作。从底部开始,反复地对数组进行上浮操作 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);
						    	}
					        }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值