【韩顺平 零基础30天学会Java】数组、排序和查找(2days)

news2024/11/17 11:26:24

数组、排序、查找和多维数组
数组可以存放多个同一类型的数据。数组也是一种数据类 型,是引用数据类型
定义一个数组 double[] hens = {3,5,1,3.4,2,50}
遍历数组得到数组所有元素的和 hens[下标],下标是从0开始编号的。
可以通过数组名.lenght得到数组的大小/长度

for(int i=0; i<6;i++){
	System.out.println("第"+i+"个元素的值=+hens[i]);
}

数组的使用
使用方式1-动态初始化
([]可以写在数据类型的后面,也可以写在数组名的后面)

数据类型[] 数组名 = new 数据类型[大小]

使用方式2-动态初始化
先声明数组 数据类型 数组名[]; OR 数据类型[] 数组名;
创建数组 数组名 = new 数据类型[大小];

使用方式3-静态初始化
初始化数组 数据类型 数组名[] = {元素值,元素值...}
(如果知道数组有多少元素,具体值)

数组注意细节
在这里插入图片描述
在这里插入图片描述
数组赋值机制
在这里插入图片描述
值传递(值拷贝)和引用传递(地址拷贝)的区别
在这里插入图片描述
数组拷贝
在这里插入图片描述
数组翻转
方法一:找规律反转 (将前后的值互换)
方法二:使用逆序赋值方法(创建一个新数组 ,逆序遍历原数组,原始数组指向新数组【=】)

数组扩容
实现动态的给数组添加元素效果,实现对数组扩容
(new新一个新数组,赋值,原始数组指向新数组arr=arrNew)

排序
排序是将多个数据,按照指定顺序进行排列的过程
排列的分类

  1. 内部排序:将所有需要处理的所有数据都加载到内部存储器中进行排序。包括(交换式排序法,选择式排序法和插入式排序法);
  2. 外部排序法:数据量过大,无法全部加载到内存中,需要借助外部存储进行排序。包括(合并排序法和直接合并排序法)。

for(int i=0;i<arr.length-1;i++)
	for(int j=0;j<arr.length-1-i;j++)		

查找
在java中,常用的查找有两种:顺序查找和二分查找。

多维数组-二维数组
二维数组
从定义形式上来看int[][]。
可以理解成,原来的一维数组的每个元素是一维数组
如果要访问第(i+1)个一维数组的第j+1个值arr[i][j]
二维数组 int [][] arr = {{0,0,0,0,0,0},{0,0,1,0,0,0},......}

//输出二维数组
for(int i = 0; i < arr.length; i++){
	for(int j = 0; j < arr[i].length; j++){
		System.out.print(arr[i][j]+"\t");
	}
	System.out.println();
}

二维数组的使用
使用方式1
语法 类型[][] 数组名=new 类型[大小][大小]
二维数组在内存中的存在形式
在这里插入图片描述
使用方式2:动态初始化
先声明,再定义,后赋值。

使用方式3:动态初始化-列数不确定

int[][] arr = new int[3][]; //创建二维数组,一个有3个一维数组,但是每个一维数组还没有开辟数据空间
for(int i=0;i<arr.length;i++){
	arr[i] = new int[i+1];
	//遍历一维数组,并给一维数组的每个元素赋值
	for(int j=0;j<arr[i].length;j++){
		arr[i][j] = i+1;
	}
}

使用方式4:静态初始化
定义 类型 数组名[][] = {{值1,值2...},{值1,值2...},{值1,值2...}}

杨辉三角~ yanghui[i][j] = yanghui[i-1][j]+yanghui[i-1][j-1]

二维数组注意细节
二维数组声明方式有:int[][] y or int[] y[] or int y[][]
二维数组实际上是由多个一维数组组成的,它的各个一维数组的长度可以相同,也可以不同。

String strs[] = new String[]{"a","b","c"}; //ok

写代码的时候要考虑边界条件哦(例如查找的时候查找不到怎么办)
生成1-100的随机整数:(int)(Math.random() * 100) + 1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/934833.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

爬取boss直聘简单案例

前提准备 以chrome自动化为例 下载浏览器驱动 最新版本&#xff1a;Chrome for Testing availability (googlechromelabs.github.io) 旧版本&#xff1a;ChromeDriver - WebDriver for Chrome - Downloads (chromium.org) 查看chrome的版本 设置->关于chrome 如图116版本…

React 如何获取上一次 state 的值

React 如何获取上一次 state 的值 一、用 ref 存储上一次的 state 类似 usePrevious function usePrevious(value) {const ref useRef();useEffect(() > {ref.current value;});return ref.current; }二、通过 setState 的入参改为函数获取

Nginx详解 第二部分:Nginx配置文件详解(附详细配置实例)

Part2 一、Nginx配置文件1.1 主配置文件详解1.2 子配置文件 二、全局配置部分2.1 修改启动的工作进程数&#xff08;worker process) 优化2.2 cpu与worker process绑定&#xff08;优化三)2.3 PID 路径修改 优化2.4 修改工作进程的优先级 优化2.7 调试工作进程打开的文件的个数…

专题:平面、空间直线参数方程下的切线斜率问题

本文研究平面、空间直线在参数方程形式下&#xff0c;切线斜率&#xff08;即导数&#xff09;如何表示的问题。 如上图所示。 设 y f ( x ) &#xff0c; x φ ( t ) &#xff0c; y ψ ( t ) 当 t t 0 时&#xff0c; x x 0 &#xff0c; y y 0 &#xff0c;即点 A 坐…

拼多多开放平台的API接口可以获取拼多多电商数据。以下是API接口流程

使用拼多多开放平台的API接口可以获取拼多多电商数据。以下是一般的API接口流程&#xff1a; 1. 注册开发者账号&#xff1a;首先&#xff0c;您需要在拼多多开放平台注册一个开发者账号。通过开发者账号&#xff0c;您可以获得API密钥和其他必要的信息。 2. 鉴权与认证&…

最详细的Django安装与启动

Django安装与配置 Python支持版本&#xff1a; Django 3.2支持的Python版本为3.6、3.7、3.8和3.9&#xff0c;而Django 4.1只支持Python 3.8、3.9和3.10。 因为考虑到新的python版本更新和新的mysql数据库版本&#xff0c;由此使用 python3.8和Django 4.1和MYSQL8.0 Django…

计算机网络-笔记-第二章-物理层

目录 二、第二章——物理层 1、物理层的基本概念 2、物理层下面的传输媒体 &#xff08;1&#xff09;光纤、同轴电缆、双绞线、电力线【导引型】 &#xff08;2&#xff09;无线电波、微波、红外线、可见光【非导引型】 &#xff08;3&#xff09;无线电【频谱的使用】 …

统计学补充概念-17-线性决策边界

概念 线性决策边界是一个用于分类问题的线性超平面&#xff0c;可以将不同类别的样本分开。在二维空间中&#xff0c;线性决策边界是一条直线&#xff0c;将两个不同类别的样本分隔开来。对于更高维的数据&#xff0c;决策边界可能是一个超平面。 线性决策边界的一般形式可以表…

如何查看友商的Camera配流情况

有时候&#xff0c;我们想看下竞品友商机器上&#xff0c;使用到camera的app 申请的分辨率情况。 如果只是抓logcat日志&#xff0c;我们可能没法从中获取到有效信息&#xff0c;毕竟一般出货的机器版本&#xff0c;基本已经把大部分相关日志都给关闭了。 那有没其它方式&…

画出你的数据故事:Python中Matplotlib使用从基础到高级

摘要&#xff1a; Matplotlib是Python中广泛使用的数据可视化库&#xff0c;它提供了丰富的绘图功能&#xff0c;用于创建各种类型的图表和图形。本文将从入门到精通&#xff0c;详细介绍Matplotlib的使用方法&#xff0c;通过代码示例和中文注释&#xff0c;帮助您掌握如何在不…

java练习8.100m小球落地

题目: 如一个小球从100米高度自由落下&#xff0c;每次落地后就反跳回原高度的一半。 那么求它在第10次落地时&#xff0c;共经过多少米&#xff1f;第10次反弹多高&#xff1f; public static void main(String[] args) {/*假如一个小球从100米高度自由落下&#xff0c;每次落…

CAS相关知识

CAS&#xff08;比较并交换&#xff09;&#xff0c;它是一条CPU并发原语&#xff0c;它的功能是判断内存中某个位置的值是否和期望值一致&#xff0c;如果一致的话就去更该为新的值&#xff0c;这个过程是原子的。 Unsafe类中的compareAndSwapInt方法&#xff0c;是native方法…

五种重要的 AI 编程语言

推荐&#xff1a;使用 NSDT场景编辑器 助你快速搭建3D应用场景 简而言之&#xff1a;决定从哪种语言开始可能会令人生畏。 不用担心&#xff01;本文将解释 AI 中使用的最流行编程语言背后的基础知识&#xff0c;并帮助您决定首先学习哪种语言。对于每种语言&#xff0c;我们将…

如何通过开源项目学习编程?

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

[LitCTF 2023]Flag点击就送!

进入环境后是一个输入框&#xff0c;可以提交名字 然后就可以点击获取flag&#xff0c;结果回显提示&#xff0c;需要获取管理员 可以尝试将名字改为admin 触发报错&#xff0c;说明可能存在其他的验证是否为管理员的方式 通过抓包后&#xff0c;在cookie字段发现了 特殊的东西…

服务器安全-修改默认ssh端口

防火墙先打开指定端口,要不修改后连不上(端口需要在65535之内) firewall-cmd --list-ports firewall-cmd --add-port54111/tcp --permanent firewall-cmd --reload-------------------- 先让两个端口同时存在,等配置成功后关闭22端口 vim /etc/ssh/sshd_config重启sshd service…

2023年最新版Windows环境下|Java8(jdk1.8)安装教程

个人主页&#xff1a;平行线也会相交 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 平行线也会相交 原创 收录于专栏【JavaSE_primary】 jdk1.8的下载和使用总共分为3个步骤&#xff1a; jdk1.8的下载、jdk1.8的安装、配置环境变量。 目录 一、jdk1.8下载…

GUI GUIDER生成的GUI移植到雅特力MCU平台过程详解(ST/GD/国民/极海通用)

好记性不如烂笔头&#xff0c;既然不够聪明&#xff0c;就乖乖的做笔记&#xff0c;温故而知新。 本文档用于本人对知识点的梳理和记录 一、前言 上一篇我们有介绍NXP GUI Guider工具如何制作和调试GUI&#xff0c;GUI神器 NXP GUI GUIDER开发工具入门教程https://blog.csdn.n…

寄存柜让物品存储变得更简单

寄存柜是一种提供临时性物品寄存服务的设备&#xff0c;通常用于超市、商场、机场、火车站、学校、影院、体育馆等公共场所为用户提供便捷的寄存服务。 寄存柜的种类&#xff1a; 1.行李寄存柜&#xff1a;专门用于旅行者寄存行李和物品的柜子&#xff0c;通常位于机场、火车站…

【Cortex-M3权威指南】学习笔记3 - 存储系统

目录 存储系统存储器映射存储器各种访问属性存储器的缺省访问许可位带操作非对齐数据传输互斥访问端模式 存储系统 存储器映射 CM3 预定义存储器映射简图&#xff08;CM3 的地址空间是 4GB &#xff09; 片上 SRAM&#xff1a;大小 512MB&#xff0c;拥有 1MB 位带区&#xff…