Java Part1 Day8 数组 数组的排序(重点) 二维数组

数组

一、内容回顾

1、数组的声明方式有哪些?

​ 1、int[] ary;

​ ary=new int[10];

​ 2、int[] ary=new int[10] ; //长度必要的 否则报错

​ 3、int[] ary=new int[]{12,23,34};

​ 4、int[] ary={12,23,34};

2、数组复制的方式有哪些?

​ 强调:创建了长度更长的新数组,把原数组里的内容,复制到新数组中

​ 方式1:编码,通过遍历逐个元素复制到新数组中

​ 方式2:System.arraycopy()

方式3:Arrays.copyOf(aryScore, 7)

3、int[] ary={12,3,20,34,56,50,10};

​ 编写方法,参数是数组,返回值是数组索引为奇数的元素的和

4、int num1=2;

​ int num2=3;

​ ++num1 + num2++ + ++num1 + num2 的值是多少

5、int[] ary={12,30,23,20,30,35,20}

​ 如何去除数组的重复元素

二、今日内容

1、晨考讲解 作业题

2、数组的排序

3、数组的应用

4、多维数组 扩展

数组的操作:数组的扩容 复制 去重 排序 查找

ArrayIndexOutOfBoundsException 数组越界异常

1、可变参数

调用方法时,实参和形参要一一对应:个数、类型、顺序

形参:可以变化的

public static void main(String[] args) {
		// TODO Auto-generated method stub
		//调用方法:调用可变参数的方法时,方法的参数不用传递数组,直接传递类型相同的值即可
		//getName2("哈淳鑫","王岩","周翔","小肖");
		String[] names={"哈淳鑫","王岩","周翔","小肖"};
		getName2(names);
		printNum(1,2,3,4,5,6,7);
	}
	//随机点名
	//参数:可变参数
	public static void getName2(String...names){
		//String...names 可变参数,在方法体内部就当做String类型的数组来用
		Random rd=new Random();
		int index=rd.nextInt(names.length);
		String name=names[index];
		System.out.println(name+":请回答问题");
	}
	//方法中既有普通参数又有可变参数,可变参数一定在参数列表的最后
	public static void printNum(int num1,int num2,int...nums){
		System.out.println(num1);
		System.out.println(num2);
		for(int i=0;i<nums.length;i++){
			System.out.print(nums[i]+" ");
		}
	}

2、数组的排序 重点

int[] ary={12,100,10,34,3,80,300,56};

升序排序:从小往大排

降序排序:从大往小排

冒泡排序:两两相邻元素进行比较,交换位置

//冒泡排序
		int[] ary={2,300,45,100,23};
		System.out.println("排序前:");
		ArrayUtil.printIntAry(ary);
		//外层控制比较的轮数
		for(int i=0; i<ary.length-1; i++){
			//内层是每一轮中,两两相邻进行比较
			for(int j=0; j<ary.length-i-1; j++){
				if(ary[j]<ary[j+1]){
					//交换
					int temp=ary[j];
					ary[j]=ary[j+1];
					ary[j+1]=temp;
				}
			}
		}
		System.out.println("排序后:");
		ArrayUtil.printIntAry(ary);

选择排序:某个元素,和其后面的每个元素都进行比较,交换位置

//选择排序
		int[] ary={2,300,45,100,23};
		System.out.println("排序前:");
		ArrayUtil.printIntAry(ary);
		
		//外层循环控制轮数
		for(int i=0; i<ary.length-1; i++){
			for(int j=i+1;j<ary.length; j++){
				if(ary[i]>ary[j]){
					int temp=ary[i];
					ary[i]=ary[j];
					ary[j]=temp;
				}
			}
		}
		System.out.println("排序后:");
		ArrayUtil.printIntAry(ary);

作业:输入一个数,判断其是否在数组中

​ 类型:数组查找,使用二分法查找

​ 1、先排序

​ 2、二分法

3、二维数组

一维数组:数组的元素就是普通值

二维数组:数组的元素又是一个数组

超级面试题:二维数组,八皇后

声明方式同一维数组

总结:

1、可变参数

2、数组排序:

​ 冒泡排序

​ 选择排序

3、二维数组

声明

赋值

遍历

作业题:

1、梳理技能点

2、重做讲过的案例 重点

3、文档题

4、二分法查找数组元素

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

隋zy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值