3.3日学习总结

1.二维数组知识点

package com.bdqn.demo04;

public class Demo01 {

	public static void main(String[] args) {
		//二维数组:一个元素还是一维数组的一维数组
		//二维数组的声明
		int[][] arr1;
		//分配空间
		arr1 = new int[4][4];
		//还有一种就是在声明时初始化
		int arr2[][] = {{1, 2, 3}, {5, 6, 7}};
		int[][] arr3 = new int[][]{{1, 2, 3}, {5, 6, 7}};
		//赋值
		arr1[0][0] = 1;
		arr1[1][1] = 2;
		//二维数组的使用
		System.out.println(arr1[1][1]);
		//二维数组的遍历
		//arr3.length返回的行数
		for (int i = 0; i < arr3.length; i++) {
			//内层循环控制列数
			for (int j = 0; j < arr3[i].length; j++) {
				System.out.print(arr3[i][j]+" ");
			}
			//一行输出后换行
			System.out.println();
		}
	}

}

2.Arrays工具类的使用

常见的方法如下,另外还有String类中的charAt方法;

package com.bdqn.demo02;

import java.util.Arrays;

public class Demo03 {

	public static void main(String[] args) {
		// Arrays工具类的使用
		//定义两个数组
		int arr1[] = {1, 2, 3, 4, 5};
		int arr2[] = {1, 9, 3, 4, 5};
		//equals方法
		boolean result1 = Arrays.equals(arr1, arr2);
		System.out.println("数组是否相同:"+result1);
		//toString方法
		System.out.println(Arrays.toString(arr1));
		//fill方法无返回值
		Arrays.fill(arr1, 10);
		//sort方法
		Arrays.sort(arr2);
		System.out.println(Arrays.toString(arr2));
		//二分查找返回查找数值的下标索引值,注意这个方法只适合排序好(升序)的数组
		Arrays.sort(arr2);
		int address = Arrays.binarySearch(arr2, 4);
		//复制数组指定长度的一组数据从0位置开始复制//3就是长度,如果长度arr1数组的长度,多出来的值用arr1默认值代替
		int[] arr3 = Arrays.copyOf(arr1, 3);
		System.out.println(Arrays.toString(arr3));
		//输出数组指定位置到另一个指定位置之间的所有值
		int[] arr4 = Arrays.copyOfRange(arr1, 2, 4);
		//String类中的charAt(下标值)返回指定下标的值,返回值类型为char型
		String str = "abc";
		char chr = str.charAt(1);
	}

}

3.降序数组插入元素依然降序排列

package com.bdqn.demo02;

import java.util.Scanner;

public class Demo01 {

	public static void main(String[] args) {
		// 降序数组插入元素依然降序排列
		//声明一个降序数组
		int score[] = {90, 78, 65, 54, 32};
		//创建Scanner类
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入要插入的数字");
		int num1 = sc.nextInt();
		//创建一个score.length+1长度的数组
		int newScore[] = new int[score.length+1];
		//for循环将score复制到newScore中去
		for (int i=0; i<score.length; i++) {
			newScore[i] = score[i];
		}
		//找到插入位置
		//先给默认的索引添加值,因为如果找不到比输入元素小的元素,我们就要插入到最后去
		int index = newScore.length-1;
		for (int j=0; j<score.length; j++) {
			if (newScore[j] < num1) {
				index = j;
				break;//break很重要找到后就退出循环
			}
		}
		//元素从最后依次往后移一位,直到插入位置前
		for (int k=newScore.length-1; k>index; k--) {
			newScore[k] = newScore[k-1];
		}
		//将插入值复制到指定位置去
		newScore[index] = num1;
		//输出数组
		for (int z=0; z<newScore.length; z++) {
			System.out.print(newScore[z]+" ");
		}
	}

}

4.冒泡排序(升序为例)

package com.bdqn.demo02;

public class Demo02 {

	public static void main(String[] args) {
		// 冒泡排序
		//声明一个数组
		int arr1[] = {12, 32, 23, 15, 67, 56};
		int temp = 0;
		//定义一个变量flag记录一轮的交换次数,如果一轮没有发生交换说明排序结束,默认是没有交换值为0
		int flag = 0;
		//输出排序前的数组
		System.out.println("输出排序前的数组");
		for (int i : arr1) {
			System.out.print(i+" ");
		}
		//换行
		System.out.println();
		//外层循环控制轮数
		for (int i=0; i<arr1.length-1; i++) {
			//内层循环控制一轮的次数
			for (int j=0; j<arr1.length-1-i; j++) {
				if (arr1[j] > arr1[j+1]) {
					//交换两个数据的值
					temp = arr1[j];
					arr1[j] = arr1[j+1];
					arr1[j+1] = temp;
					flag++;
				}
			}
			//如果一轮没有发生交换,说明数组已经有序了,退出循环
			if (flag == 0) {
				break;
			}
		}
		//输出冒泡排序后的数组
		System.out.println("输出冒泡排序后的数组");
		for (int i : arr1) {
			System.out.print(i+" ");
		}
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值