JAVA的学习日记DAY6
文章目录
- 数组
- 例子
- 数组的使用
- 数组的注意事项和细节
- 练习
- 数组赋值机制
- 数组拷贝
- 数组反转
- 数组添加
- 排序
- 冒泡排序
- 查找
- 多维数组 - 二维数组
- 二维数组的使用
- 二维数组的遍历
- 杨辉三角
- 二维数组的使用细节和注意事项
- 练习
开始每日一更!得加快速度了!
数组
数组可以存放多个同一类型的数据。数组也是一种数据类型,是引用类型,即:数组就是一组数据
例子
一个养鸡场有6只鸡,它们的体重分别是3kg,5kg,1kg,3.4kg,2kg,50kg。请问这六只鸡的总体重是多少?平均体重是多少?
数组的使用
-
使用方式1-动态初始化
- 数组的定义
数组类型 数组名[] = new 数据类型[大小]
(也可以)数组类型[] 数组名 = new 数据类型[大小]
int a[] = new int[5]; //创建了一个数组,名字为a,存放5个int
说明:这是定义数组的一种方法
-
数组的引用(使用)
数组名[下标/索引] 比如:你要使用a数组的第3个数 a[2]
数组的下标从0开始
//第1种动态分配方式 double scores[] = new double[5];例子:循环输入5个成绩,保存到double数组,并输出

-
使用方式2-动态初始化
-
先声明数组
语法:数据类型 数组名[];也可以 数据类型[] 数组名;
int a[]; 或者 int[] a;
-
创建数组
语法:数组名=new 数据类型[大小]
a=new int[10];
//第2种动态分配方式 //先声明数组,再 new 分配空间 double scores[];//声明数组,这时 scores 是 null scores = new double[5];//分配内存空间,可以存放数据
-
-
使用方式3-静态初始化
-
初始化数组
语法:数据类型 数组名[] = {元素值,元素值…}
int a[] = {2,5,6,7,8,89,90,34,56}, 如果知道数组有多少元素,具体值
上面的用法相当于:int a[ ] = new int[9];
a[0] = 2; a[1] = 5; a[2] = 6; a[3] = 7; a[4] = 8;
a[5] = 89; a[6] = 90; a[7] = 34; a[8] = 56;
-
数组的注意事项和细节
-
数组是多个相同类型数据的组合,实现对这些数据的统一管理
-
数组中的元素可以是任何数据类型,包括基本类型和引用类型,但是不能混用
-
数组创建后,如果没有赋值,有默认值;int 0, short 0, byte 0, long 0, float 0.0, double 0.0, char \u0000, boolean false, String null

-
使用数组的步骤(1)声明数组并开辟空间(2)给数组各个元素赋值(3)使用数组
-
数组的下标是从0开始的
-
数组的下标必须在指定范围内使用,否则报:下标越界异常
-
数组属引用类型,数组型数据是对象
练习
-
创建一个char类型的26个元素的数组,分别放置 ‘A’ - ‘Z’.使用for循环访问所有元素并打印出来。提示:char类型数据运算’A’ + 1 -> ‘B’

-
请求出一个数组int[]的最大值{4,-1,9,10,23},并得到对应的下标

数组赋值机制
-
基本数据类型赋值,这个值就是具体的数据,而且互相不影响。

-
数组在默认情况下是引用传递,赋的值是地址。

数组拷贝
- 编写代码 实现数组拷贝(内容复制):将 int[] arr1 = {10,20,30};拷贝到arr2数组,要求数据空间是独立的

数组反转
-
把数组的元素内容反转:arr{11,22,33,44,55,66} → {66,55,44,33,22,11}
方式1:通过找规律反转

方式2:使用逆序赋值的方式

数组添加
- 实现动态的给数组添加元素效果,实现对数组扩容
- 原始数组使用静态分配 int[] arr = {1,2,3}
- 增加的元素,直接放在数组的最后 arr = {1,2,3,4} arrNew = {1,2,3,4}
- 用户可以通过如下方法来决定是否继续添加,添加成功,是否继续?y/n

排序
排序是将多个数据,依指定的顺序进行排列的过程。
-
内部排序
将需要处理的所有数据都加载到内部存储器中进行排序。包括(交换式排序法、选择式排序法和插入式排序法)
-
外部排序
数据量过大,无法全部加载到内存中,需要借助外部存储进行排序。包括(合并排序法和直接合并排序法)
冒泡排序
-
通过对待排序序列从后向前(从下标较大的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就像水底下的气泡一样逐渐向上冒。
-

冒泡排序的特点:-
一共有5个元素
-
一共进行了4轮排序,可以看成是外层循环
-
每1轮排序可以确定一个数的位置,比如第1轮排序确定最大数,第2轮排序确定第2大的数的位置,依次类推
-
当进行比较时,如果前面的数大于后面的数,就交换
-
每轮比较在减少4 ->3 -> 2 -> 1

-
查找
-
顺序查找
- 有一个数列:白眉鹰王、金毛狮王、紫衫龙王、青翼蝠王猜数游戏:从键盘中任意输入一个名称,判断数列中是否包含名称 要求:如果找到了,就提示找到,并给出下标值

- 有一个数列:白眉鹰王、金毛狮王、紫衫龙王、青翼蝠王猜数游戏:从键盘中任意输入一个名称,判断数列中是否包含名称 要求:如果找到了,就提示找到,并给出下标值
-
二分查找(二分法,放在后面的算法中讲解)
多维数组 - 二维数组
- 二维数组的应用场景:比如开发一个五子棋游戏,棋盘就是需要二维数组来表示

二维数组的使用
-
使用方式1:动态初始化
-
语法:类型[][] [] [] 数组名 = new 类型[大小] [大小] //第一个大小表示它包含几个一维数组,第二个大小表示每一个一维数组它的大小是多少

-
比如:int a[] [] = new int[2] [3]
-
使用演示
-
二维数组在内存的存在形式
-
-
使用方式2:动态初始化
-
先声明:类型 数组名[] [] ;
-
再定义(开辟空间)数组名 = new 类型 [大小] [大小]
int arr[][];//声明二维数组 arr = new int[2][3];//再开空间 -
赋值(有默认值,比如int 类型的就是0)
-
使用演示
-
-
使用方式3:动态初始化 - 列数不确定


-
使用方式4:静态初始化
-
定义 类型 数组名[] [] = {{值1, 值2 …}, {值1, 值2 …}, {值1, 值2 …}}
-
使用即可 [固定方式访问]
int[][] arr = {{1,1,1},{8,8,9},100}; //1.定义了一个二维数组arr //2.arr有三个元素(每个元素都是一维数组) //3.第一个一维数组有3个元素,第二个一维数组有3个元素,第三个一维数组有1个元素
-
二维数组的遍历
- 例子:int arr[] [] = {{4,6},{1,4,5,7},{-2}};遍历该二维数组,并得到和

杨辉三角
-
第一行有1个元素,第n行有n个元素
-
每一行的第一个元素和最后一个元素都是1
-
从第三行开始,对于非第一个元素和最后一个元素的元素的值,arr[i] [j]
arr[i] [j] = arr[i-1] [j] + arr[i-1] [j-1]

二维数组的使用细节和注意事项
-
一维数组的声明方式有:
int[] x 或者 int x[] -
二维数组的声明方式有:
int[][] y 或者 int[] y[] 或者 int y[][] -
二维数组实际上是由多个一维数组组成的,它的各个一维数组的长度可以相同,也可以不相同。比如:map[] []是一个二维数组,map[] [] = {{1,2},{3,4,5}},由map[0]是一个含有两个元素的一维数组,map[1]是一个含有三个元素的一维数组构成,我们也称为列数不等的二维数组。
练习
2.
A. 错误,char -> String
B. 正确
C. 把 new String去掉就对了
D. 正确
E. 错误 new String[]里面不能有具体的数字
bar[0]默认false,bar[1]也是false,所以最后结果是blue
结果是1 3 5 7

public class lianxierweishuzu{public static void main(String[] args){int[] arr = new int[10];//(int)(Math.random() * 100) + 1 生产 随机数 1-100for(int i = 0; i < arr.length; i ++){arr[i] = (int)(Math.random() * 100) + 1;}System.out.println("===arr的元素情况===");for(int i = 0; i < arr.length; i ++){System.out.print(arr[i] + "\t");}System.out.println("\n===arr的元素情况(倒序)===");for(int i = arr.length - 1; i >= 0; i --){System.out.print(arr[i] + "\t");}double sum = arr[0];int max = arr[0];int maxIndex = 0;for(int i = 1; i < arr.length; i ++){sum += arr[i];//累积和if(max < arr[i]){//说明max不是最大值,就变化max = arr[i];maxIndex = i;}}System.out.println("\nmax=" + max + " maxIndex=" + maxIndex);System.out.println("\n平均值=" + (sum / arr.length));//查找数组中是否有8 -> 使用顺序查找int findNum = 8;int index = -1;//如果找到,就把下标记录到indexfor(int i = 0; i < arr.length; i ++){if(findNum == arr[i]){System.out.println("找到数" + findNum + " 下标=" + i);index = i;break;}}if(index == -1){System.out.println("没有找到数" + findNum);}}
}

最后结果:a a
z z
韩 韩
c c

相关文章:
JAVA的学习日记DAY6
文章目录 数组例子数组的使用数组的注意事项和细节练习数组赋值机制数组拷贝数组反转数组添加 排序冒泡排序 查找多维数组 - 二维数组二维数组的使用二维数组的遍历杨辉三角二维数组的使用细节和注意事项练习 开始每日一更!得加快速度了! 数组 数组可以…...
Grafana告警(邮件)自定义模板配置
一年前给客户部署配置过grafana,告警配置也是用的原始的,客户在使用过程中只需要一些核心点信息,想要实现这个就需要用Grafana的自定义告警模板以及编辑邮件模板。 通知模板 模板信息的配置中查阅了相关资料,自己组装了一套&…...
大话设计模式——六大基本设计原则(SOLID原则)
设计模式 定义:软件开发中,在特定上下文中解决一类常见问题的被证明为有效的最佳实践。可供其他开发者重复使用解决相似问题。 好处: 提高代码的可重用性,减少重复代码。提高代码的可维护性,使代码更易于理解和修改。…...
Qt | Q_PROPERTY属性和QVariant 类
一、属性基础 1、属性与数据成员相似,但是属性可使用 Qt 元对象系统的功能。他们的主要差别在于存取方式不相同,比如属性值通常使用读取函数(即函数名通常以 get 开始的函数)和设置函数(即函数名通常以 set 开始的函数)来存取其值,除此种方法外,Qt 还有其他方式存取属性值…...
力扣207.课程表
你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出,其中 prerequisites[i] [ai, bi] ,表示如果要学习课程 ai 则 必须 先学习课程 bi 。 例如…...
十五届web模拟题整理
模拟赛一期 1.动态的Tab栏 请在 style.css 文件中补全代码。 当用户向下滚动的高度没有超过标题栏(即 .heading 元素)的高度时,保持 Tab 栏在其原有的位置。当滚动高度超过标题栏的高度时,固定显示 Tab 栏在网页顶部。 /* TODO…...
ubuntu20.04 安裝PX4 1.13
step1_install_depenences.sh #!/bin/bash #install gazebo 11 #install protobuf 3.19.6python3 -m pip install --upgrade pip python3 -m pip install --upgrade Pillow# 將 empy 的版本調整爲3.3.4 pip3 uninstall empy pip3 install empy3.3.4sudo apt-get update sudo ap…...
大型网站系统架构演化
大型网站质量属性优先级:高性能 高可用 可维护 应变 安全 一、单体架构 应用程序,数据库,文件等所有资源都在一台服务器上。 二、垂直架构 应用和数据分离,使用三台服务器:应用服务器、文件服务器、数据服务器 应用服…...
探索Java中的栈:Stack与Deque(ArrayDeque和LinkedList)
文章目录 1. 栈(Stack)1.1 定义方式1.2 特点1.3 栈的层次结构 2. 双端队列(Deque)2.1 定义方式及继承关系2.2 特点:2.3 ArrayDeque2.4 LinkedList2.5 Deque 的各种方法2.6 如何选择ArrayDeque和LinkedList 3. 如何选择…...
实践笔记-03 docker buildx 使用
docker buildx 使用 1.启用docker buildx2.启用 binfmt_misc3.从默认的构建器切换到多平台构建器3.1创建buildkitd.toml文件(私有仓库是http没有证书的情况下,需要配置)3.2创建构建器并使用新创建的构建器 4.构建多架构镜像并推送至harbor仓库…...
【数据结构与算法】之8道顺序表与链表典型编程题心决!
个人主页:秋风起,再归来~ 数据结构与算法 个人格言:悟已往之不谏,知来者犹可追 克心守己,律己则安! 目录 1、顺序表 1.1 合并两个有序数组 1.2 原地移除数组中所有的元素va…...
Go 源码之旅-开篇
欢迎来到《Go 源码之旅》专栏!在这个专栏中,我们将深入探索 Go 编程语言的内部数据结构的工作原理,一起踏上一段令人兴奋的源码之旅。 我们将一步步解析关键的数据结构底层工作原理以及一些常用框架的设计原理及其源码。 无论你是初学者还是…...
spring的事件推送
本质上是设计模式中的观察者模式。 一、什么是观察者模式 观察者模式是一种行为型设计模式,它定义了一种一对多的依赖关系,当一个对象的状态发生改变时,其所有依赖者都会收到通知并自动更新。 二、什么是spring的事件推送 在 Spring 的事…...
计算机网络—HTTPS协议详解:工作原理、安全性及应用实践
🎬慕斯主页:修仙—别有洞天 ♈️今日夜电波:ヒューマノイド—ずっと真夜中でいいのに。 1:03━━━━━━️💟──────── 5:06 🔄 ◀️ ⏸…...
卫星遥感影像在农业方面的应用及评价
一、引言 随着科技的进步,卫星遥感技术在农业领域的应用越来越广泛。卫星遥感技术以其宏观、快速、准确的特点,为农业生产和管理提供了有力的技术支撑。本文将对卫星遥感在农业方面的应用进行详细介绍,并通过具体案例进行说明。 二、…...
docker pull镜像的时候指定arm平台
指定arm平台 x86平台下载arm平台的镜像包 以mysql镜像为例 docker pull --platform linux/arm64 mysqldocker images查看镜像信息 要查看Docker镜像的信息,可以使用docker inspect命令。这个命令会返回镜像的详细信息,包括其元数据和配置。 docker i…...
如何通过OceanBase V4.2 动态采样优化查询性能
OceanBase v4.2 推出了优化器动态采样的功能,在SQL运行过程中,该功能会收集需要的统计信息,协助优化器制定出更好的执行计划,进一步提升了查询性能。 影响查询性能的因素是什么?为何你的优化器效果不佳? …...
Vue3---基础1(认识,创建)
变化 相对于Vue2,Vue3的变化: 性能的提升 打包大小减少 41% 初次渲染快 55%,更新渲染快133% 内存减少54% 源码的升级 使用 proxy 代替 defineProperty 实现响应式 重写虚拟 DOM 的实现和 Tree-shaking TypeScript Vue3就可以更好的支持TypeSc…...
JAVA集合ArrayList
目录 ArrayList概述 add(element) 用法 add(index, element)用法 remove(element)用法 remove(index)用法 get(index)用法 set(index,element) 练习 test1 定义一个集合,添加字符串,并进行遍历&…...
Bitmap OOM
老机器Bitmap预读仍然OOM,无奈增加一段,终于不崩溃了。 if (Build.VERSION.SDK_INT < 21)size 2; 完整代码: Bitmap bitmap; try {//Log.e(Thread.currentThread().getStackTrace()[2] "", surl);URL url new URL(surl);…...
(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)
题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...
云计算——弹性云计算器(ECS)
弹性云服务器:ECS 概述 云计算重构了ICT系统,云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台,包含如下主要概念。 ECS(Elastic Cloud Server):即弹性云服务器,是云计算…...
工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...
智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...
vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...
五年级数学知识边界总结思考-下册
目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解:由来、作用与意义**一、知识点核心内容****二、知识点的由来:从生活实践到数学抽象****三、知识的作用:解决实际问题的工具****四、学习的意义:培养核心素养…...
Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)
在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马(服务器方面的)的原理,连接,以及各种木马及连接工具的分享 文件木马:https://w…...
七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...
vulnyx Blogger writeup
信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面,gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress,说明目标所使用的cms是wordpress,访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...







