数组

数组

什么是数组:相同数组类型的集合,相当于容器

  • 声明数组
		int[] arr = new int[5];
   	System.out.println(arr);//在数组声明的时候已经默认初始化
   	//数据类型[] 数组名 = new 数据类型[数组长度]
   	

初始化

动态初识化:在数组声明的时候已经默认初始化
	int[] arr = new int[5];
静态初始化
	```java
		int[] arr1 = {1,2,3};
		int[] arr2 = new int[]{1,2,3};
	```

数组元素的访问

数组长度length
通过数组的下标(索引)访问数组元素
数组的下标从0开始,到length-1结束

动态初识化数组默认值

byte、short、long、int:0
float、double:0.0
String:null
Boolean:false
char:空格/u0000

数组元素的赋值

数组名[下标] = 值;

数组的遍历

   /*
   * 练习录入键盘一个班10个学生的考试成绩,计算平均分
   */
   	double[] salary = new double[10];
   	Scanner scan = new Scanner(System.in);
   	double s = 0;
   	for (int i = 0; i <salary.length; i++) {
   		System.out.println("请输入"+(i+1)+"学生成绩:");
   		salary[i]=scan.nextDouble();
   		System.out.println(salary[i]);
   		s +=salary[i];
   	}
   	System.out.println("平均分:"+s/10);

数组的工具类

Arrays.tostring(数组名)

	//数组的工具类,将这个double数组转换为string类型字符串
		String a = Arrays.toString(salary);

获取随机数的数组中最大值和最小值

int[] arr =new int[10];
		//遍历数组使用1-100随机赋值
		for(int i = 0; i<arr.length; i++){
			arr[i] = (int) (Math.random()*100+1);
		}
		System.out.println(Arrays.toString(arr));
		//求最大值
		//定义一个最大值
		int max = arr[0];
		for(int i=0; i<arr.length; i++){
			if(max<arr[i]){
				max = arr[i];		
			}
		}
		System.out.println(max);
		//获取最小值
		int min = arr[0];
		for(int i=0;i<arr.length;i++){
			if(min>arr[i]){
				min = arr[i];
			}
		}
		System.out.println(min);

数组的复制

  • system.arraycopy
    System.arraycopy(src, srcPos, dest, destPos, length);
    src:原数组
    srcPos:原数组开始位置
    dest:目标数组
    destPos:目标数组开始位置
    length:截取长度
		int[] arr1 ={1,2,3,4,5};
		int[] arr2 = new int[5];
		//用system.arraycopyof给arr2赋值
		//把原数组的一段截取出来复制给目标数组
		System.arraycopy(arr1, 1, arr2, 2, 2);
		System.out.println(Arrays.toString(arr2));
  • Arrays.CopyOf扩容
		 /*创建一个长度为10的数组使用随机数赋值
		 * 找出数组元素中的最大值并将最大值放在新数组的最后一位
		 * 使用Arrays.copyof
		 */
		int[] arr2 =new int[10];
		for(int i=0; i<arr2.length;i++){1
			arr2[i]= (int) (Math.random()*100+1);
		}
		System.out.println(Arrays.toString(arr2));
		int max = arr[0];
		for (int i = 0; i < arr2.length; i++) {
			if(max<arr2[i]){
				max = arr2[i];
			}
		}
		System.out.println(max);
		int[] arr3 = new int[11];
		arr3 = Arrays.copyOf(arr2, arr2.length+1);
		arr3[arr3.length-1] = max;
		System.out.println(Arrays.toString(arr3));
  • 数组的排序
    冒泡排序:相邻的两个元素相互比较,把较大或较小的值放到后一位。
		 /*
		 * 冒泡
		 */
		int[] arr = new int[10];
		for (int i = 0; i < arr.length; i++) {
			arr[i] = (int) (Math.random()*100+1);
			
		}
		System.out.println(Arrays.toString(arr));
		//冒泡排序
		for (int i = 0; i < arr.length; i++) {
			//外层循环
			for (int j = 0; j < arr.length-i-1; j++) {
				//内层循环控制每一轮次数
				int temp;//用于数据交换
				if(arr[j]<arr[j+1]){
					temp = arr[j];
					arr[j] = arr[j+1];
					arr[j+1] = temp;
				}
			}
		}
		System.out.println(Arrays.toString(arr));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值