Java数组详解 -- 基础知识与常用操作

这篇具有很好参考价值的文章主要介绍了Java数组详解 -- 基础知识与常用操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客,方便日后回顾。当然,如果能帮到一些萌新进行新技术的学习那也是极好的。作者菜菜一枚,文章中如果有记录错误,欢迎读者朋友们批评指正。
(博客的参考源码以及可以在我主页的资源里找到,如果在学习的过程中有什么疑问欢迎大家在评论区向我提出)

发现宝藏

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【宝藏入口】。

一、初识数组

数组是一种可以容纳多个相同类型数据元素的数据结构。它是Java编程中常用的数据类型,用于存储和操作一组数据。数组提供了一个连续的内存空间来存储多个元素,并通过索引来访问和操作其中的每个元素。

1. 数组的定义

在Java中,可以使用以下语法来定义一个数组:

  dataType[] arrayName;

其中,dataType表示数组中元素的数据类型,arrayName是数组的名称。

2. 数组的特点

1. 数组具有以下特点:

  • 数组长度固定:一旦数组被创建,其长度就是固定的,无法动态改变
  • .存储相同类型的数据:数组中的元素必须是相同类型的数据
  • 连续的内存空间:数组中的元素在内存中是连续存储的,可以通过索引快速访问

Java数组详解 -- 基础知识与常用操作,JAVA基础,java,开发语言,后端,数据结构

  • 正是因为数组的在内存空间的地址是连续的,所以我们在删除或者增添元素的时候,就难免要移动其他元素的地址。例如删除下标为3的元素,如图所示:

Java数组详解 -- 基础知识与常用操作,JAVA基础,java,开发语言,后端,数据结构

  • 数组的元素是不能删除的,只能覆盖

3. 声明和初始化数组

1. 声明数组的语法

要声明一个数组,可以使用以下语句:

  dataType[] arrayName;

其中,dataType是数组中元素的数据类型,arrayName是数组的名称。

2. 静态初始化和动态初始化

在声明数组的同时,可以进行初始化操作。数组的初始化可以分为静态初始化和动态初始化两种方式。

  • 静态初始化

静态初始化是指在声明数组的同时,为数组元素赋初值。可以使用以下语法进行静态初始化:

  dataType[] arrayName = {element1, element2, ...};

其中,dataType是数组中元素的数据类型,arrayName是数组的名称,element1, element2, …是要赋给数组元素的值。

  • 动态初始化

动态初始化是指在声明数组后,再为数组分配内存空间,并为数组元素赋初值。可以使用以下语法进行动态初始化:

  dataType[] arrayName = new dataType[arrayLength];

其中,dataType是数组中元素的数据类型,arrayName是数组的名称,arrayLength是数组的长度,表示可以存储的元素个数。

4. 默认初始化值

在Java中,如果没有为数组中的元素赋初值,那么数组会自动进行默认初始化,根据数据类型不同采用不同的默认值。下面是一些常见数据类型的默认初始化值:

  • int类型的数组,默认元素值为 0
  • double类型的数组,默认元素值为 0.0
  • boolean类型的数组,默认元素值为 false
  • char类型的数组,默认元素值为空字符 \u0000

二、访问和操作数组元素

1. 数组的索引和范围

数组中的每个元素都通过一个非负整数索引来访问。索引从 0 开始,依次递增。例如,第一个元素的索引为 0,第二个元素的索引为 1,以此类推。数组的长度为 n,则有效索引范围为 0 到 n - 1

2. 通过索引访问数组元素

要访问数组中的元素,可以使用以下语法:

  arrayName[index]

其中,arrayName是数组的名称,index是要访问的元素的索引。通过该语法可以获取数组中指定索引位置的元素值。

3. 修改数组元素的值

通过索引访问数组元素后,还可以对该元素进行赋值操作,从而修改元素的值。使用以下语法来修改数组元素的值:

  arrayName[index] = newValue;

其中,arrayName是数组的名称,index是要修改的元素的索引,newValue是要赋给该元素的新值。

三、数组的长度和属性

1. 数组的长度计算

通过使用 length 属性,可以获取数组的长度。长度表示数组中元素的个数,而非数组占用的内存空间大小。要获取数组的长度,可以使用以下语法:

  int length = arrayName.length;

其中,arrayName是数组的名称,length是用于存储数组长度的变量。

2. 数组的长度属性

数组的长度是在创建数组时指定的,一旦创建后,长度就是固定的。使用length属性可以获取数组的长度值,常用于遍历数组或检查数组是否越界。

3. 数组越界的错误

在访问数组元素时,需要确保所使用的索引在有效范围内,否则会发生数组越界的错误。如果索引小于0或大于等于数组长度,都会导致数组越界错误。在编写代码时,应格外注意数组索引的范围

四、数组的遍历

数组的遍历是指依次访问数组中的每个元素。遍历数组可以通过循环结构实现,常见的有for循环和增强for循环

1. for循环遍历数组

for (int i = 0; i < arrayName.length; i++) {
    // 访问数组元素:arrayName[i]
    // 执行其他操作
}

在for循环中,使用一个循环变量i来作为索引,从 0 开始逐渐增加,直到达到数组长度减 1 为止。该方法适用于需要根据索引进行操作的情况。

2. 增强for循环遍历数组

for (dataType element : arrayName) {
    // 访问数组元素:element
    // 执行其他操作
}

增强 for 循环是Java 5中引入的一种遍历数组的简化方法。它可以直接遍历数组中的每个元素,不需要使用索引变量。该方法适用于只需要访问数组元素而不需要索引的情况。

3. 遍历多维数组

遍历多维数组可以嵌套使用多个循环,每层循环负责遍历一维数组的元素。

for (int i = 0; i < arrayName.length; i++) {
    for (int j = 0; j < arrayName[i].length; j++) {
        // 访问数组元素:arrayName[i][j]
        // 执行其他操作
    }
}

通过嵌套的循环,可以依次遍历每个二维数组的元素。

五、多维数组

多维数组是指包含多个一维数组的数组。例如,二维数组是一种常见的多维数组,它包含多个一维数组作为其元素。

1. 二维数组的定义和初始化

在Java中,可以使用以下语法来定义二维数组:

  dataType[][] arrayName = new dataType[rowLength][columnLength];

其中,dataType是二维数组中元素的数据类型,arrayName是二维数组的名称,rowLength表示二维数组的行数,columnLength表示二维数组的列数。

二维数组的初始化可以通过静态初始化和动态初始化两种方式,与一维数组类似。

2. 访问和操作二维数组元素

要访问二维数组中的元素,可以使用以下语法:

  arrayName[rowIndex][columnIndex]

其中,arrayName是二维数组的名称,rowIndex是要访问的元素所在行的索引,columnIndex是要访问的元素所在列的索引。

可以通过修改二维数组元素的值,来操作二维数组。与一维数组类似,使用以下语法来修改二维数组的元素值:

  arrayName[rowIndex][columnIndex] = newValue;

六、数组的注意事项和扩展

1. 数组长度的不可变性

数组一旦创建后,其长度就是固定的,无法动态改变。如果需要存储更多的元素,可以考虑使用动态数组或集合类。

2. 数组的复制和排序

  • 可以使用 System.arraycopy() 方法或 Arrays.copyOf() 方法来复制数组

使用 System.arraycopy() 方法:

int[] sourceArray = {1, 2, 3, 4, 5};
int[] targetArray = new int[sourceArray.length];

System.arraycopy(sourceArray, 0, targetArray, 0, sourceArray.length);

使用 Arrays.copyOf() 方法:

int[] sourceArray = {1, 2, 3, 4, 5};
int[] targetArray = Arrays.copyOf(sourceArray, sourceArray.length);
  • 可利用Arrays.sort() 方法对数组进行 排序
 // 使用 Arrays.sort() 方法对数组进行排序
 Arrays.sort(numbers);
}

3. 数组的查找

通过 binarySearch 方法能对排序好的数组进行二分查找法操作

import java.util.Arrays;

public class BinarySearchExample {
    public static void main(String[] args) {
        // 示例数组,必须为已排序的数组
        int[] array = {10, 20, 30, 40, 50, 60, 70};
        int key = 40;

        int index = Arrays.binarySearch(array, key);
}

4. 动态数组的实现:ArrayList

在Java中,除了使用数组外,还可以使用 ArrayLis t类来实现动态数组。ArrayList 可以自动调整长度,并提供了丰富的方法来操作和管理元素。(详情请到个人主页查看关于ArrayList的入门博客)

总结

欢迎各位留言交流以及批评指正,如果文章对您有帮助或者觉得作者写的还不错可以点一下关注,点赞,收藏支持一下。
(博客的参考源码可以在我主页的资源里找到,如果在学习的过程中有什么疑问欢迎大家在评论区向我提出)文章来源地址https://www.toymoban.com/news/detail-640489.html

到了这里,关于Java数组详解 -- 基础知识与常用操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • MATLAB基础知识之数组与矩阵

    MATLAB基础知识之数组与矩阵

    本文是参考书籍《MATLAB R2020a完全自学一本通 》自己整理的一些笔记和一些练习,希望会给大家带来一些帮助。 目录 1、数组创建与运算 1.1数组的创建 1.2数组的运算 1.2.1 算术运算  1.2.2关系运算与逻辑运算  2、矩阵的构造与操作 2.1矩阵的构造 2.2矩阵的操作 2.3矩阵索引  2

    2024年02月07日
    浏览(7)
  • Oracle常用基础知识

    Oracle常用基础知识

    SQL语言是一种数据库语言  1、DDL:数据定义语言 create-创建  drop-删除 alter-修改 rename-重命名 truncate-截断 2、DML:数据操作语句 insert-插入 delete-删除 update-更新 select-查询 3、DCL:数据控制语句 grant-授权 revoke-回收权力 commit-提交事务 rollback-回滚事务 注:Oracle命令不区分大小写

    2024年02月12日
    浏览(12)
  • Unity | Shader基础知识(第九集:shader常用单词基础知识速成)

    Unity | Shader基础知识(第九集:shader常用单词基础知识速成)

    目录 一、顶点(Vertex)和法线(Normal) 二、UV信息 三、 基础数据种类 1 基础数据种类 2 基础数据数组 3 基础数据数组的赋值 4 对数据数组的调用 四、 基础矩阵 1 基础矩阵种类  2 对矩阵数组的调用 2.1对一个数据的调用  2.2对多个数据的调用  2.3对数据的赋值 五、基础纹理种

    2024年02月01日
    浏览(14)
  • Selenium 基础知识(二):常用方法

    1、send_keys()方法:模拟键盘输入 2、text方法:获取文本值 3、get_attribute():获取属性值 4、maximize_window():实现浏览器窗口最大化 5、current_window_handle:返回窗口句柄,即标识窗口字符串 6、current_url:获取当前窗口URL 7、is_selected():判断元素是否被选中,多用于选择框 8、is_e

    2024年02月16日
    浏览(12)
  • 【数据结构】—— 队列基础知识以及数组模拟队列的分析、演示及优化

    【数据结构】—— 队列基础知识以及数组模拟队列的分析、演示及优化

    ❤️一名热爱Java的大一学生,希望与各位大佬共同学习进步❤️ 🧑个人主页:@周小末天天开心 各位大佬的点赞👍 收藏⭐ 关注✅,是本人学习的最大动力 感谢! 📕该篇文章收录专栏—数据结构 目录 什么是队列? 数组模拟队列 分析 存入队列的步骤 使用数组模拟队列—

    2024年01月19日
    浏览(13)
  • 目标检测(1)—— 基础知识和常用数据集

    目标检测(1)—— 基础知识和常用数据集

    一张图片,经过网络后得到输出,检测出感兴趣目标的一个位置,比如下图的车在什么地方,狗在什么地方;还要输出相应位置的目标是什么类别的。 目标检测:位置+类别 矩形框:位置 矩形框:类别 eg:人脸检测 把人脸作为目标,就把人脸框起来。 eg:文字检测 把文字

    2024年02月08日
    浏览(13)
  • eclipse基础操作+基础知识(一)

    eclipse基础操作+基础知识(一)

    🖊作者 : D. Star. 📘专栏 :JAVA 😆今日分享 : 电影版–花千骨 背景:eclipse已经安装完成。 eclipse版本:2020.06 tomcat版本:8.5 file–new–project… 查看创建好后的视图 在src下建一个包:右击src–new–package 在包下建一个 .java 文件:右击包–new–class 建完之后就可以在 .java 文件下敲

    2024年01月24日
    浏览(42)
  • python基础知识(二):变量和常用数据类型

    python基础知识(二):变量和常用数据类型

    变量是值可以改变的量,其定义方法如下,通过赋值运算符将变量名和变量值连接: 例如: 其中将值\\\"Hello Python world!“通过赋值运算符”=\\\"赋值给变量message。 (1) 变量名只能包含字母、数字和下划线。变量名可以字母或下划线打头,但不能以数字打头,例如,可将变量命名为

    2024年02月06日
    浏览(17)
  • ES6基础知识二:ES6中数组新增了哪些扩展?

    ES6基础知识二:ES6中数组新增了哪些扩展?

    一、扩展运算符的应用 ES6通过扩展元素符…,好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列 主要用于函数调用的时候,将一个数组变为参数序列 可以将某些数据结构转为数组 能够更简单实现数组复制 const a1 = [1, 2]; const […a2] = a1; // [1,2] 数组的合并也更为

    2024年02月16日
    浏览(13)
  • 常用基础硬件知识 - 判断MOS管导通

    常用基础硬件知识 - 判断MOS管导通

    本文主要记录下基础的硬件知识,方便自己查阅。 后续有时间、遇到什么问题,就随时补充完善。 在产品硬件设计中,有时需要程序控制一些电源使能。 1.原理图已经标出了G极(gate)—栅极、S极(source)—源极、D极(drain)—漏极。 如果没有标出的话,引出两根线,像字母’F’就

    2024年02月04日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包