Java零基础教程——数组
目录
- 数组
- 静态初始化数组
- 数组的访问
- 数组的动态初始化
- 元素默认值规则:
- 数组的遍历
- 数组遍历-求和
- 冒泡排序
- 数组的逆序交换
数组
数组就是用来存储一批同种类型数据的容器。
20, 10, 80, 60, 90
int[] arr = {20, 10, 80, 60, 90};
//位置 0 1 2 3 4
数组的位置是从0开始的;
数组的初始化
- 分为静态初始化,动态初始化、
静态初始化数组
通俗的讲:定义数组的时候直接给数组赋值。
静态初始化数组的格式:
// 完整格式
数据类型[] double[] scores = new double[]{89.9, 99.5, 59.5, 88.0};
int[] arr = new int[]{12, 24, 36}数组名 = new 数据类型[]{元素1,元素2 ,元素3… };
// 简化格式
数据类型[] 数组名 = { 元素1,元素2 ,元素3,… };
int[] arr = {12, 24, 36};
注意:数组变量名中存储的是数组在内存中的地址,数组是引用类型。
数组的访问
取值
格式:数组名称[索引]
赋值
格式:数组名称[索引] = 数据
int[] arr = {12, 24, 36};
//位置 0 1 2 // 取值: 数组名称[索引]
System.out.println(arr[0]);//12
System.out.println(arr[1]);//24
System.out.println(arr[2]);//36
// 赋值:数组名称[索引] = 数据;
arr[2] = 100;
System.out.println(arr[2]); // 100// 访问数组的长度 数组名称.lengthSystem.out.println(arr.length);

数组的动态初始化
数组的动态初始化格式:
数据类型[] 数组名 = new 数据类型[长度];
int[] arr = {12, 24, 36};
//位置 0 1 2 //数据类型[] 数组名 = new 数据类型[长度];
int[] arr = new int[3];// 后赋值
arr[0] = 10;
System.out.println(arr[0]); // 10
元素默认值规则:
| 数据类型 | 明细 | 默认值 |
| 基本类型 | byte、short、char、int、long | 0 |
| float、double | 0.0 | |
| boolean | false | |
| 引用类型 | 类、接口、数组、String | null |
| 数据类型 | 明细 | 默认值 |
|---|---|---|
| 基本类型 | byte、short、char、int、long | 0 |
| float、double | 0.0 | |
| boolean | false | |
| 引用类型 | 类、接口、数组、String | null |
// 1、整型数组的元素默认值都是0int[] arr = new int[10];System.out.println(arr[0]);System.out.println(arr[9]);// 2、字符数组的元素默认值是多少呢? 0char[] chars = new char[100];System.out.println((int)chars[0]);System.out.println((int)chars[99]);// 3、浮点型数组的元素默认值是0.0double[] scores = new double[90];System.out.println(scores[0]);System.out.println(scores[89]);// 4、布尔类型的数组boolean[] booleans = new boolean[100];System.out.println(booleans[0]);System.out.println(booleans[99]);// 5、引用类型的数组String[] names = new String[90];System.out.println(names[0]);System.out.println(names[89]);

注意:
- 动态初始化:只指定数组长度,后期赋值,适合开始知道数据的数量,但是不确定具体元素值的业务场景。
- 静态初始化:开始就存入元素值,适合一开始就能确定元素值的业务场景。
- 两种格式的写法是独立的,不可以混用。
数组的遍历
代码:
int[] ages = {20, 30, 40, 50};
for (int i = 0; i < ages.length; i++) {System.out.println(ages[i]);
}
数组遍历-求和
需求:某部门5名员工的销售额分别是:20、16、36、3、100,请计算出他们部门的总销售额。
分析
-
把这5个数据存储在数组中
int[] money = {16, 16, 36, 3, 100}; -
遍历数组中的每个数据,然后在外面定义求和变量把他们累加起来。
int sum = 0; for (int i = 0; i < money.length; i++) {// i = 0 1 2 3 4sum += money[i]; }
冒泡排序
1、定义一个数组,存储一些数据啊
2、定义一个循环控制比较的轮数
核心代码
if(arr[j] > arr[j+1]) {int temp = arr[j+1];arr[j+1] = arr[j];arr[j] = temp;}
代码:
public static void main(String[] args) {// 1、定义一个数组,存储一些数据啊int[] arr = {5, 2, 3, 1};// 0 1 2 3// 2、定义一个循环控制比较的轮数for (int i = 0; i < arr.length - 1; i++) {// i == 0 比较的次数 3 j = 0 1 2// i == 1 比较的次数 2 j = 0 1// i == 2 比较的次数 1 j = 0// 3、定义一个循环控制每轮比较的次数,占位for (int j = 0; j < arr.length - i - 1; j++) {// 判断j当前位置的元素值 是否 大于后一个位置 若较大 则交换if(arr[j] > arr[j+1]) {int temp = arr[j+1];arr[j+1] = arr[j];arr[j] = temp;}}}// 遍历数组内容输出for (int i = 0; i < arr.length; i++) {System.out.print(arr[i] + "\t");}}
数组的逆序交换
/*把一个数组的元素逆序交换,int[] a = { 5, 11, 15, 24, 36, 47, 59, 66 };交换元素后int[] b = { 66 ,59 ,47 ,36 ,24,15 ,11 ,5 };*/public static void main(String[] args) {int[] a = {5, 11, 15, 24, 36, 47, 59, 66};int[] b = new int[8];for (int i = 0; i < 8; i++) {b[i] = a[a.length - 1 - i];}System.out.println(Arrays.toString(b));}
相关文章:
Java零基础教程——数组
目录数组静态初始化数组数组的访问数组的动态初始化元素默认值规则:数组的遍历数组遍历-求和冒泡排序数组的逆序交换数组 数组就是用来存储一批同种类型数据的容器。 20, 10, 80, 60, 90 int[] arr {20, 10, 80, 60, 90}; //位置 0 1 2 3 4数组的…...
AirServer在哪下载?如何免费使用教程
苹果手机投屏到电脑mac是怎么弄?你知道多少?相信大家对苹果手机投屏到电脑mac能在电脑上操作不是很了解,下面就让coco玛奇朵带大家一起了解一下教程。AIrServer是一款ios投屏到mac的专用软件,可将iOS上的音频,视频&…...
加载sklearn covtype数据集出错 fetch_covtype() HTTPError: HTTP Error 403: Forbidden解决方案
大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。喜欢通过博客创作的方式对所学的知识进行总结与归纳,不仅形成深入且独到的理…...
理论六:为什么基于接口而非实现编程?有必要为每个类定义接口么?
在上一节课中、我们讲了接口和抽象类,以及各种编程语言是如何支持、实现这两个语法概念的。今天,我们继续讲一个跟“接口”相知识点:基于接口而非实现编程。这个原则非常重要,是一种非常有效的提高代码质量的手段,在平时的开发中特别经常被用到。为了让你…...
(HP)react日常开发技巧
高级特性 1,protals(传送门):将子组件渲染到父组件之外。 实例场景:父组件的儿子是<Modal>组件,使用fixed定位虽然样式看着是在父组件之外了,但是打开控制台查看元素,Modal相…...
【20230211】【剑指1】搜索与回溯算法II
树的子结构递归思维:对称性递归什么是对称性递归?就是对一个对称的数据结构(这里指二叉树)从整体的对称性思考,把大问题分解成子问题进行递归,即不是单独考虑一部分(比如树的左子树),而是同时考…...
STM32F103C8T6—库函数应用I2C/SPI驱动OLED显示中文、字符串
文章目录1. I2C与SPI通信协议对比2. 四脚OLED与六脚OLED3. I2C驱动OLED显示oled.h & oled.c:汉字取模 & oledfont.h:main.c 显示示例:连线方法:4. SPI驱动OLED显示1. I2C与SPI通信协议对比 I2C(Inter-Integra…...
sql语句要注意的地方及常用查询语句
sql要注意的地方关键字不能被缩写,也不能分行小写大写不敏感,没区别使用缩进提高语句的可读性常用查询语句1.查询所有库SHOW DATABASES;2.选择数据库 use 数据库名USE myemployees;3.查看数据库中所有表show tables4.查看表中的内容 select 字段一&#…...
数组去重、伪数组和真数组的区别以及伪数组如何转换成真数组
1.数组去重 1) 利用数组的indexOf下标属性来查询。 如果找到一个 item,则返回 item 的第一次出现的位置。开始位置的索引为 0。 如果在数组中没找到指定元素则返回 -1。 function unique4(arr) {var newArr []for (var i 0; i < arr.length; i) {i…...
JavaScript内置支持类Array
<!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>内置支持类Array</title> </head> <body bgcolor"antiquewhite"> <script type"text/javasc…...
GitLab CI-CD 学习笔记
概述 1. CI/CD CI(持续集成)指开发人员一天内进行多次合并和提交代码操作,并通过自动化测试,完成构建 CD(持续部署)指每次代码更改都会自动部署到对应环境 CI/CD 结合在一起,可以加快开发团…...
K8S安装
1.创建三台centos虚拟机 使用的官方最小镜像安装 CentOS-7-x86_64-Minimal-1804.iso 建议最小硬件配置:2核CPU、2G内存、20G硬盘 master配置详情 node1和node2配置详情 三台虚拟机在安装centos的时候在网络IPV4指定DHCP,配置IPV4固定地址,保证可以访问…...
【C++】模板初阶STL简介
今天,你内卷了吗? 文章目录一、泛型编程二、函数模板(显示实例化和隐式实例化)1.函数模板格式2.单参数模板3.多参数模板4.模板参数的匹配原则三、类模板(没有推演的时机,统一显示实例化)1.类模…...
备战蓝桥杯第一天【二分查找无bug版】
🌹作者:云小逸 📝个人主页:云小逸的主页 📝Github:云小逸的Github 🤟motto:要敢于一个人默默的面对自己,强大自己才是核心。不要等到什么都没有了,才下定决心去做。种一颗树,最好的时间是十年前…...
Java集合中的Map
MapMap接口键 值 对存储键不能重复,值可以重复Map三个实现类的存储结构HashMap:Hash表链表红黑树结构 线程不安全TreeMap: 底层红黑树实现HashTable:hash表链表红黑树 线程安全HashMapHashMap常用方法HashMap<String,String>…...
【java】springboot项目启动数据加载内存中的三种方法
文章目录一、前言二、加载方式2.1、 第一种:使用PostConstruct注解(properties/yaml文件)。2.2、 第二种:使用Order注解和CommandLineRunner接口。2.3、 第三种:使用Order注解和ApplicationRunner接口。三、代码示例3.…...
【GO】29.go-gin支持ssl/tls,即https示例
本文为演示采用自签名证书一.生成证书通过openssl工具生成证书1.1 安装opensslmacos通过brew安装brew install openssl1.2 生成跟证书私钥openssl genrsa -out ca.key 40961.3 准备配置文件vim ca.conf内容如下[ req ] default_bits 4096 distinguished_name req_disti…...
逻辑仿真工具VCS的使用-Makefile
Gvim写RTL code,VCS仿真,Verdi看波形,DC做综合下约束,Primetime做STA,Spyglass做异步时序分析。 VCS全称Verilog Computer Simulation ,VCS是逻辑仿真EDA工具的编译源代码的命令。要用VCS做编译仿…...
信息系统安全技术
一、信息安全的有关概念 1. 属性2. 四个安全层次※3. 信息安全保护等级※4. 安全保护能力的等级※ 二、信息加密、解密与常用算法 1. 对称加密2. 非对称加密3. Hash函数4. 数字签名5. 认证 三、信息系统安全 1. 计算机设备安全2. 网络安全3. 操作系统安全4. 数据库安全5. 应用系…...
【数据结构】最小生成树(Prim算法,普里姆算法,普利姆)、最短路径(Dijkstra算法,迪杰斯特拉算法,单源最短路径)
文章目录前置问题问题解答一、基础概念:最小生成树的定义和性质(1)最小生成树(Minimal Spanning Tree)的定义(2)最小生成树(MST)的性质二、如何利用MST性质寻找最小生成树…...
测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...
Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...
R语言AI模型部署方案:精准离线运行详解
R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...
【单片机期末】单片机系统设计
主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...
Spring AI与Spring Modulith核心技术解析
Spring AI核心架构解析 Spring AI(https://spring.io/projects/spring-ai)作为Spring生态中的AI集成框架,其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似,但特别为多语…...
网站指纹识别
网站指纹识别 网站的最基本组成:服务器(操作系统)、中间件(web容器)、脚本语言、数据厍 为什么要了解这些?举个例子:发现了一个文件读取漏洞,我们需要读/etc/passwd,如…...
在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案
这个问题我看其他博主也写了,要么要会员、要么写的乱七八糟。这里我整理一下,把问题说清楚并且给出代码,拿去用就行,照着葫芦画瓢。 问题 在继承QWebEngineView后,重写mousePressEvent或event函数无法捕获鼠标按下事…...
【Go语言基础【13】】函数、闭包、方法
文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...
MFC 抛体运动模拟:常见问题解决与界面美化
在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...
