Java从入门到精通-数组(一)

news2025/3/1 15:34:25

0.思维导图


1.数组概述

• 1.1 数组的定义

在编程中,数组是一种用于存储多个相同类型的数据元素的数据结构。数组提供了一种有序的方式来组织和访问数据,每个元素都有一个唯一的索引,通过索引可以快速访问元素。

• 1.2 数组的重要性

  • 数据的组织:数组允许以有序的方式组织数据,使数据更易于管理和访问。

  • 高效的存储和检索:通过索引,可以在数组中快速存储和检索数据,而无需遍历整个集合。

  • 相同数据类型:数组要求所有元素具有相同的数据类型,这有助于保持数据的一致性。

  • 多种应用:数组在算法、数据结构、列表、矩阵等许多计算和数据处理领域都有广泛的应用。

• 1.3数组的基本特点

  • 数组是固定大小的,一旦创建,其大小通常无法更改。

  • 数组的元素可以通过索引访问,索引通常从0开始。

  • 数组中的元素具有相同的数据类型。

  • 数组可以是一维或多维的,具体取决于问题的需求。

• 1.4声明和初始化数组

在Java中,声明和初始化数组的语法如下:

// 声明并初始化一个整数数组
int[] numbers = new int[5];

// 初始化一个字符串数组
String[] names = {"Alice", "Bob", "Charlie"};

• 1.5数组的应用场景

数组在编程中的应用场景非常广泛,包括但不限于:

  • 存储学生的成绩或员工的工资。

  • 表示图像的像素数据。

  • 实现数据结构,如栈和队列。

  • 解决算法问题,如搜索、排序和过滤数据。

2.一维数组

一维数组是最简单的数组类型,它包含一组相同数据类型的元素,这些元素按照线性顺序排列,可以通过索引来访问。

• 2.1 创建一维数组

创建一维数组的语法如下:

// 声明并创建一个整数数组,数组长度为5
int[] numbers = new int[5];

上面的代码声明了一个名为 numbers 的整数数组,它有5个元素。这些元素的索引从0到4。您可以根据需要调整数组的长度。

• 2.2 初始化一维数组

一维数组可以通过不同的方式进行初始化:

2.2.1 静态初始化
// 初始化一个字符串数组
String[] daysOfWeek = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};

静态初始化在声明数组的同时为其分配初始值。数组的大小根据提供的初始值自动确定。

2.2.2 动态初始化
// 动态初始化一个字符数组,长度为3
char[] vowels = new char[3];
vowels[0] = 'A';
vowels[1] = 'E';
vowels[2] = 'I';

动态初始化在声明数组后,逐个为数组元素分配值。您需要明确指定数组的大小。

• 2.3 使用一维数组

一维数组的元素可以通过索引来访问和操作。例如:

int[] numbers = {10, 20, 30, 40, 50};

// 访问数组元素
int firstNumber = numbers[0]; // 第一个元素,值为10
int thirdNumber = numbers[2]; // 第三个元素,值为30

// 修改数组元素
numbers[1] = 25; // 修改第二个元素的值为25

3.二维数组

二维数组是一种特殊类型的数组,它包含多个一维数组,每个一维数组又可以包含多个元素。通常,它们用于表示表格、矩阵和多维数据结构。

• 3.1 创建二维数组

创建二维数组的语法如下:

// 声明并创建一个二维整数数组,大小为3x3
int[][] matrix = new int[3][3];

上面的代码声明了一个名为 matrix 的整数二维数组,它有3行和3列。您可以根据需要调整数组的行数和列数。

• 3.2 初始化二维数组

二维数组可以通过不同的方式进行初始化:

3.2.1 静态初始化
// 初始化一个二维字符串数组
String[][] ticTacToe = {
    {"X", "O", "X"},
    {"O", "X", "O"},
    {"X", "O", "X"}
};

静态初始化在声明数组的同时为其分配初始值。数组的大小根据提供的初始值自动确定。

3.2.2 动态初始化
// 动态初始化一个二维字符数组,大小为2x2
char[][] gameBoard = new char[2][2];
gameBoard[0][0] = 'X';
gameBoard[0][1] = 'O';
gameBoard[1][0] = 'O';
gameBoard[1][1] = 'X';

动态初始化在声明数组后,逐个为数组元素分配值。您需要明确指定数组的行数和列数。

• 3.3 使用二维数组

二维数组的元素可以通过两个索引来访问和操作,一个用于指定行,另一个用于指定列。例如:

int[][] matrix = {
    {1, 2, 3},
    {4, 5, 6},
    {7, 8, 9}
};

// 访问二维数组元素
int element = matrix[1][2]; // 第二行第三列的元素,值为6

// 修改二维数组元素
matrix[0][1] = 10; // 修改第一行第二列的元素为10

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

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

相关文章

状态管理艺术——借助Spring StateMachine驭服复杂应用逻辑

文章目录 1. 什么是状态2. 有限状态机概述3. Spring StateMachine4. Spring StateMachine 入门小案例4.1 接口测试 5. 总结 1. 什么是状态 在开发中,无时无刻离不开状态的一个概念,任何一条数据都有属于它的状态。 比如一个电商平台,一个订…

自动化测试的重要性:为何追求自动化?

为什么需要自动化测试? 代替手工重复操作,测试工程师可以花更多时间在设计全面的测试用例和新功能测试上 【代替手工重复】 提升回归测试的效率,适合敏捷开发过程 【提升回归效率】 更好的利用非工作时间执行测试,工作时间分析失…

油猴浏览器(安卓)

油猴浏览器页面设计非常简约,在主页上还为小伙伴们推荐了很多的常用书签,像油猴脚本,常用导航,新闻,热搜类的,快递查询等等,可以设置快捷访问,把常用到的一些网站设置在主页上。 浏览…

代码随想录Day_60打卡

①、柱状图中最大的矩形 给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱状图中,能够勾勒出来的矩形的最大面积。 事例: 输入:heights [2,1,5,6,2,3] 输出:1…

Chrome 117 发布:新 Web 开发调试技巧都在这了!

简介:Chrome 更新了最新版本 Chrome 117,更新了很多实用的DevTools 新特性。 首先介绍大家最熟悉的Network面板,看看给我们带来了什么好玩的~ Network 面板改进 更快地在本地覆盖网页内容 现在,本地覆盖功能更加简化&#xff0…

【数据结构】二叉树基础入门

💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …

Alibaba(商品详情)API接口

为了进行电商平台 的API开发,首先我们需要做下面几件事情。 1)开发者注册一个账号 2)然后为每个alibaba应用注册一个应用程序键(App Key) 。 3)下载alibaba API的SDK并掌握基本的API基础知识和调用 4)利…

解锁“高级特权” 偷偷用。千万别声张

现在的手机修图软件,功能是越来越强大了。之前需要用到电脑端PS的功能,现在手机上的修图软件就能实现,还是一键处理的傻瓜操作。 你离P图大神只差一个APP——「大神批图」,已解锁限制,安装即是VIP。 功能非常丰富&…

多元共进|创新技术提供助力,共创增长机遇

谷歌致力于推动业务和应用长效增长 助力开发者优化用户体验 一起来了解 2023 Google 开发者大会上 谷歌如何将创新技术 融入商业合作和智能家居生态 用技术赋能业务增长 以科技点亮智慧生活 谷歌坚持以 AI 为技术核心,不断投入研究,并将其应用至各类场景…

【C++刷题】经典简单题第二辑

回文排列 class Solution { public:bool canPermutePalindrome(string s) {// 记录字符出现的次数int count[256] {0};for(size_t i 0; i < s.size(); i)count[s[i]];// 记录字符出现次数为奇数的个数int flag 0;for(size_t i 0; i < 256; i)if(count[i] % 2 1)f…

JavaScript作用域链与预解析

查找上一级 JavaScript的预解析 js解析器在运行js代码时会先进行预解析,再进行代码的执行 预解析时js引擎会把js里面所有的var还有function提升到当前作用域的最前面 代码执行,按照代码书写的顺序从上往下执行 预解析分为变量预解析(变量提升)与函数预解析(函数提升) 1.变量…

优秀的 Modbus 主站(主机、客户端)仿真器、串口调试工具

文章目录 优秀的 Modbus 主站&#xff08;主机、客户端&#xff09;仿真器、串口调试工具主要功能软件截图 优秀的 Modbus 主站&#xff08;主机、客户端&#xff09;仿真器、串口调试工具 modbus master,modbus,串口,工控,物联网,PLC,嵌入式 官网下载地址&#xff1a;http:/…

七)Stable Diffussion使用教程:附加功能

图生图右侧有个附加功能选项,里面其实也存在一个图片放大(缩放)功能,而且因为它不涉及重绘的过程,所以不需要任何提示词,适用于任何图片(包括非 SD 生成的图片)。 原理:在拉伸放大的基础上适当对色块和线条的边缘做了模糊处理,和其他工具的放大原理类似。 观察界面…

【LeetCode-中等题】367. 有效的完全平方数

文章目录 题目方法一&#xff1a;二分查找 题目 方法一&#xff1a;二分查找 找 1 - num 之间的 mid&#xff0c; 开方是整数 就找得到 mid&#xff0c; 不是整数自然找不到mid class Solution { // 二分查找 &#xff1b;找 1 - num 之间的mid 开方是整数 就找得到 不是…

python超详细安装

目录 初始python获取python安装包python解释器安装pycharm编译器安装pycharm的简单使用&#xff08;第一个hello world&#xff09; 初始python Python 是一款易于学习且功能强大的编程语言。 它具有高效率的数据结构&#xff0c;能够简单又有效地实现面向对象编程。 Python简…

平衡二叉搜索树(AVL)——【C++实现插入、删除等操作】

本章完整代码gitee地址&#xff1a;平衡二叉搜索树 文章目录 &#x1f333;0. 前言&#x1f332;1. AVL树概念&#x1f334;2. 实现AVL树&#x1f33f;2.1 结构定义&#x1f33f;2.2 插入&#x1f490;左单旋&#x1f490;右单旋&#x1f490;左右双旋&#x1f490;右左双旋 &a…

c++day1

练习&#xff1a;使用cout完成输出斐波那契前20项的内容 1 1 2 3 5 8 13.。。。 #include <iostream> using namespace std;int main() {int a[20]{1,1};for(int i2;i<20;i){a[i]a[i-1]a[i-2];}for(int i0;i<20;i){cout<<a[i]<<" ";}retur…

javascript【格式化时间日期】

javascript【格式化时间日期】 操作&#xff1a; (1) 日期格式化代码 /*** 日期格式化函数<br/>* 调用格式&#xff1a;需要使用日期对象调用* <p> new Date().Format("yyyy/MM/dd HH:mm:ss"); </p>* param fmt 日期格式* returns {*} 返回格式化…

易优cms响应式月嫂家政服务公司网站模板源码—自适应手机端设计,支持后台管理

易优cms响应式月嫂家政服务公司网站模板源码 自适应手机端 带后台 模板基于EyouCMS内核制作,模板编码为UTF8 ,适合行业:家政服务类企业。 模板信息&#xff1a; 模板分类&#xff1a;摄像、婚庆、家政、保洁 适合行业&#xff1a;家政服务类企业 模板介绍&#xff1a; 本模…

龙蜥Anolis 8.8 安装MySQL

一、安装参考文档 官方文档&#xff1a;https://dev.mysql.com/doc/refman/8.0/en/linux-installation-yum-repo.html#yum-repo-installing-mysql出问题时的文档&#xff1a;https://blog.csdn.net/weixin_44798320/article/details/123446249 二、安装过程 2.1 下载官方的镜…