Day10——Java基础——多维数组

Java中的多维数组
在java中没有多维数组语法,根据数组的数据类型,与数据保存数据的数据类型相结合推出的基于数组这一基本概念的多维数组(在java中只存在数组的语法 不存在多维数组的语法 所谓的多维数组 就是数组中存储数组的嵌套)

在一个数组中保存另外一个数组 另一个数组保存数据
语法:
数据类型 [][]……数组名 =new 数据类型[长度a][长度b]……[长度n]
长度a当前数组中保存了多少个数组
长度b当前数组中保存了多少个数组
长度n每个数组中保存的数据个数

//数组使用步骤
		//1、声明     
		//数据类型 [] 数组名
		//数据类型 数组名 []
		int [] a;
		//2、创建 初始化
		//动态创建  以声明的变量=new 数据类型[数组长度]  会为每一位元素赋默认值
		//可以与声明分开写 但是大部分 动态创建于声明一同进行
		
		//静态创建  数据类型  []变量名={数据1,数据2,数据3};
		//静态创建 必须将声明与创建一同进行
		
		a=new int[5];
		//3、赋值
		//无论是动态创建 还是静态创建都会对每个元素进行赋值
		//使用 数组名[索引]=值  的形式修改元素的数据值
		a[3]=2;
		//4、使用
		//与赋值语法相同    数组名[索引]  的形式获取指定数组索引位置的值
		
		
		//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		
		//二维数组的使用
		//声明    赋值    使用
		//数据类型 [][] 数组名
		//数据类型 数组名 [][]
		//创建初始化 
		//动态创建   数组变量=new 数据类型 [当前数组保存数据长度][数组保存数据长度];
		int [][] i=new int[3][];
		for (int j = 0; j < i.length; j++) {
			i[j]=new int[j+1];
		}
		//创建一个保存int类型数组   的数组 长度为3  保存int类型数组的长度为2
		//对于动态创建而言 创建的类似于矩形  第一个参数就是矩形的行数 第二个参数就是列数
		
		//静态创建
		//所有数据以{}包裹   数据间以,分割
		int [][]i1={{1},{2,3},{4,5,6}};
		
		
		//赋值
		i1[2][1]=3;
		
		//使用
		//int t=i[3][1];
		
		
		
		//二维数组 的遍历
		//先将数组的每一位取出
		//继续将取出每一位数组的元素取出
		for (int[] js : i1) {
			for (int j : js) {
				System.out.print(j+" ");
			}
			System.out.println();
		}

算法的概念
什么叫算法
实现某一复杂操作的简单流程(将复杂的流程简单化 将不必要执行的代码(运行效率低的代码)使用好的代码替换)
使用代码编写实现某一复杂操作的代码块

排序算法
快速的将数组中的数据进行排序

冒泡排序
① 基本思想
冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为每趟比较将当前数列未排序部分的最大的元素“沉”到数列末端,而小的元素会经由交换慢慢“浮”到数列的顶端。
② 算法描述
1)比较相邻的元素。如果前一个比后一个大,就交换它们两个;
2)对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数;
3)针对所有的元素重复以上的步骤,除了最后一个;
4)重复步骤1~3,直到排序完成。为了优化算法,可以设立一个布尔标识,每趟排序开始前设为false,如果该趟排序发生了交换就置为true,如果一趟排序结束标识仍为false表示该趟排序没有发生交换,即数组已经有序,可以提前结束排序。
在这里插入图片描述

// 排序
		int[] a = { 3, 1, 4, 2, 8, 9, 7, 6, 5 };
		// 依次取 与所有当前之后数据比较 有比他大的交换位置
		int count = 0;
//		for (int i = 0; i < a.length; i++) {
//			for (int j = i; j < a.length; j++) {
//				count++;
//				if (a[i] < a[j]) {
//					int b = a[i];
//					a[i] = a[j];
//					a[j] = b;
//				}
//			}
//		}
//		System.out.println("普通:" + count);

		// 冒泡排序
		for (int j = 1; j < a.length; j++) {
			for (int i = 0; i < a.length- j; i++) {
				if (a[i] > a[i + 1]) {
					count++;
					int b = a[i];
					a[i] = a[i + 1];
					a[i + 1] = b;
				}
			}
		}
		System.out.println("冒泡:" + count);
		for (int i : a) {
			System.out.print(i + " ");
		}

	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java 的 `LocalDate` 是一个表示日期的类,它可以表示一个本地日期,没有时间和时区信息。它是 Java 8 中引入的一个日期/时间 API。 要使用 `LocalDate`,需要在代码中导入 `java.time.LocalDate`。 以下是一些常用的 `LocalDate` 方法: - `now()`:获取当前日期 - `of(int year, int month, int dayOfMonth)`:创建一个指定年份、月份和日期的 LocalDate 实例 - `getYear()`、`getMonthValue()` 和 `getDayOfMonth()`:获取年、月和日 - `plusDays(long daysToAdd)` 和 `minusDays(long daysToSubtract)`:增加或减少指定的天数,返回新的 LocalDate 实例 - `isEqual(LocalDate other)` 和 `isAfter(LocalDate other)`:比较两个 LocalDate 实例的大小关系 以下是一个示例代码: ```java import java.time.LocalDate; public class LocalDateExample { public static void main(String[] args) { // 获取当前日期 LocalDate today = LocalDate.now(); System.out.println("今天的日期是:" + today); // 创建一个指定日期的 LocalDate 实例 LocalDate date = LocalDate.of(2022, 11, 11); System.out.println("指定日期是:" + date); // 获取年、月、日 int year = date.getYear(); int month = date.getMonthValue(); int day = date.getDayOfMonth(); System.out.println("年:" + year + ",月:" + month + ",日:" + day); // 增加或减少指定的天数 LocalDate newDate = date.plusDays(100); System.out.println("增加 100 天后的日期是:" + newDate); // 比较两个 LocalDate 实例的大小关系 if (today.isEqual(date)) { System.out.println("今天和指定日期相同"); } else if (today.isAfter(date)) { System.out.println("今天在指定日期之后"); } else { System.out.println("今天在指定日期之前"); } } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值