Java基础篇--数组

目录

声明和初始化数组:

访问和修改数组元素:

数组长度:

遍历数组:

多维数组的遍历:

数组的常见操作和方法:

拓展小知识:


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

声明和初始化数组:

  • 数组声明:在声明数组时,需要指定数组的数据类型和名称。例如,int[] myArray; 声明了一个名为 myArray 的整型数组。
  • 数组初始化:通过使用关键字 new 创建数组对象,并指定数组的长度或直接提供元素的初始值来初始化数组。
    • 通过指定长度初始化数组:myArray = new int[5]; 使用 new 关键字创建一个包含5个整数元素的整型数组。
    • 直接提供元素的初始值初始化数组:int[] myArray = {1, 2, 3, 4, 5}; 定义并初始化了一个包含元素 1、2、3、4 和 5 的整型数组。
int[] myArray;  // 声明一个整型数组变量
myArray = new int[5];  // 创建一个包含5个整数元素的数组int[] myArray = {1, 2, 3, 4, 5};  // 声明并初始化一个整型数组// 多维数组
int[][] myArray = new int[3][4];  // 声明一个3行4列的二维数组

访问和修改数组元素:

  • 数组的索引从0开始,即第一个元素的索引是0。要访问和修改数组中的元素,可以使用方括号 [] 并提供相应的索引。
    • 获取数组中的元素值:int value = myArray[0]; 获取索引为0的元素值并赋给变量 value
    • 修改数组中的元素值:myArray[1] = 10; 将索引为1的元素值设置为10。
int value = myArray[0];  // 获取数组中索引为0的元素值myArray[1] = 10;  // 修改数组中索引为1的元素值

数组长度:

  • 通过使用数组的 length 属性,可以获取数组的长度。例如,int length = myArray.length; 获取数组 myArray 的长度,并将其赋给变量 length。
int length = myArray.length;  // 获取数组的长度

遍历数组:

  • 可以使用循环结构(例如 for 循环)来遍历数组中的元素并进行处理。
  • 使用下标循环遍历:通过控制索引的范围,从0开始逐个访问数组中的元素并进行操作。
for (int i = 0; i < myArray.length; i++) {System.out.println(myArray[i]);
}
  • 使用 for-each 循环遍历:使用 for-each 循环语法可以简化数组的遍历操作。它会依次遍历数组中的每个元素,而不需要显式地使用索引。
for (int num : myArray) {System.out.println(num);
}

多维数组的遍历:

多维数组是由数组组成的数组。可以使用嵌套的循环结构来遍历多维数组中的元素。

int[][] myArray = new int[3][4];  // 一个3行4列的二维数组for (int i = 0; i < myArray.length; i++) {for (int j = 0; j < myArray[i].length; j++) {System.out.println(myArray[i][j]);}
}

数组的常见操作和方法:

java.util.Arrays 类能方便地操作数组,它提供的所有方法都是静态的。

以下是对 java.util.Arrays 类提供的常用方法的简要介绍:

  1. fill 方法:用指定的值填充整个数组。
  2. sort 方法:按升序对数组进行排序。
  3. equals 方法:比较两个数组中的元素值是否相等。
  4. binarySearch 方法:在已排序的数组中使用二分查找法查找指定元素。

注意:在使用索引访问和修改数组元素时,确保索引值在数组的有效范围内,以避免出现 ArrayIndexOutOfBoundsException 异常。

import java.util.Arrays;public class ArraysExample {public static void main(String[] args) {// 声明并初始化一个整型数组int[] array = {5, 2, 9, 1, 7};// 使用fill方法将整个数组填充为指定的值Arrays.fill(array, 0);System.out.println("使用fill方法后的数组: " + Arrays.toString(array));// 运行结果:使用fill方法后的数组: [0, 0, 0, 0, 0]// 使用sort方法对数组进行升序排序Arrays.sort(array);System.out.println("使用sort方法后的数组: " + Arrays.toString(array));// 运行结果:使用sort方法后的数组: [0, 0, 0, 0, 0]// 声明并初始化一个新的整型数组int[] newArray = {1, 2, 3, 4, 5};// 使用equals方法比较两个数组的元素值是否相等boolean isEqual = Arrays.equals(array, newArray);System.out.println("两个数组是否相等: " + isEqual);// 运行结果:两个数组是否相等: false// 使用binarySearch方法在已排序的数组中查找指定元素int index = Arrays.binarySearch(newArray, 4);System.out.println("查找元素的索引位置: " + index);// 运行结果:查找元素的索引位置: 3}
}

拓展小知识:

ArrayIndexOutOfBoundsException 是 Java 中的一个运行时异常,它表示数组访问超出了有效索引范围。这通常发生在以下情况下:

  1. 索引小于零:尝试使用负数作为数组元素的索引。
    int[] myArray = {1, 2, 3};
    int value = myArray[-1];  // 导致 ArrayIndexOutOfBoundsException 异常
    
  2. 索引大于等于数组长度:尝试访问或修改数组中不存在的索引位置。
    int[] myArray = {1, 2, 3};
    int value = myArray[3];  // 导致 ArrayIndexOutOfBoundsException 异常
    
  3. 在嵌套数组(多维数组)中的某个维度上的索引超出范围。
    int[][] myArray = new int[3][4];  // 3行4列的二维数组
    int value = myArray[3][0];  // 导致 ArrayIndexOutOfBoundsException 异常
    

为避免 ArrayIndexOutOfBoundsException 异常,需要确保在访问和修改数组元素时,所使用的索引值位于合法的范围内:

  • 数组的索引范围为从 0 到长度减一(length - 1)的整数范围。
  • 多维数组的每个维度的索引范围也是相同的。

在编写代码时,需要仔细检查数组索引的使用,确保它们在合法范围内,可以通过条件判断、循环和边界检查等方法来避免 ArrayIndexOutOfBoundsException 异常的发生。

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

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

相关文章

B100-技能提升-线程池分布式锁

目录 线程池什么是线程池&#xff1f;为什么用线程池?线程池原理常见四种线程池和自定义线程池 线程池 什么是线程池&#xff1f; 池化技术 为什么用线程池? 1 由于设置最大线程数&#xff0c;防止线程过多而导致系统崩溃。 2 线程复用&#xff0c;不需要频繁创建或销毁…

包管理机制pip3

pip3 安装pip3 安装pip3 apt install python3-pip yum install python3-pip从仓库出发的命令 查询仓库信息 // 获取默认pip3源 pip3 config get global.index-url查询所有软件包 查询已经安装的所有软件包 pip3 list从软件包出发的命令 从软件包名出发查询其他信息 查询…

230. 二叉搜索树中第K小的元素

介绍 中序遍历&#xff1a;左子树 -> 中 -> 右子树 二叉搜索树&#xff1a;中序遍历可以得到有序的序列 递归法 1.使用函数循环递归处理 2.使用一个数组来保存 k, 保证在个个递归函数中都能看到 看的变化&#xff1b;每访问一个节点&#xff0c;这个数减一&#xff0c…

软件测试基础篇——Redis

Redis Redis数据库的配置与连接 解压redis数据库的安装包&#xff08;建议把解压后的安装包放到磁盘的根目录&#xff0c;方便访问操作&#xff09;打开【命令行窗口】&#xff1a;winR在命令行窗口&#xff0c;进入到redis安装目录中 ​ 格式一&#xff1a;cd /d redis目录…

Linux安装Zookeeper

1、Zookeeper简介 ZooKeeper是一个分布式的&#xff0c;开放源码的分布式应用程序协调服务&#xff0c;是Google的Chubby一个开源的实现&#xff0c;是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件&#xff0c;提供的功能包括&#xff1a;配置维护、域…

自然语言处理从入门到应用——LangChain:记忆(Memory)-[记忆的类型Ⅲ]

分类目录&#xff1a;《自然语言处理从入门到应用》总目录 对话令牌缓冲存储器ConversationTokenBufferMemory ConversationTokenBufferMemory在内存中保留了最近的一些对话交互&#xff0c;并使用标记长度来确定何时刷新交互&#xff0c;而不是交互数量。 from langchain.me…

基于灰狼优化(GWO)、帝国竞争算法(ICA)和粒子群优化(PSO)对梯度下降法训练的神经网络的权值进行了改进(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

环保行业如何开发废品回收微信小程序

废品回收是近年来受到越来越多人关注的环保行动。为了推动废品回收的普及和方便&#xff0c;我们可以利用微信小程序进行制作&#xff0c;方便人们随时随地参与废品回收。 首先&#xff0c;我们需要注册并登录乔拓云账号&#xff0c;并进入后台。乔拓云是一个提供微信小程序制作…

数据结构(一):顺序表详解

在正式介绍顺序表之前&#xff0c;我们有必要先了解一个名词&#xff1a;线性表。 线性表&#xff1a; 线性表是&#xff0c;具有n个相同特性的数据元素的有限序列。常见的线性表&#xff1a;顺序表、链表、栈、队列、数组、字符串... 线性表在逻辑上是线性结构&#xff0c;但…

【云原生】Pod详讲

目录 一、Pod基础概念1.1//在Kubrenetes集群中Pod有如下两种使用方式&#xff1a;1.2pause容器使得Pod中的所有容器可以共享两种资源&#xff1a;网络和存储。1.3kubernetes中的pause容器主要为每个容器提供以下功能&#xff1a;1.4Kubernetes设计这样的Pod概念和特殊组成结构有…

Django中级指南:理解并实现Django的模型和数据库迁移

Django 是一个极其强大的 Python Web 框架&#xff0c;它提供了许多工具和特性&#xff0c;能够帮助我们更快速、更便捷地构建 Web 应用。在本文中&#xff0c;我们将会关注 Django 中的模型&#xff08;Models&#xff09;和数据库迁移&#xff08;Database Migrations&#x…

上传代码到GitCode

Git 全局设置 git config --global user.name "AnyaPapa" git config --global user.email "fangtaihongqq.com" 添加SSH密钥 Mac终端输入命令 cd existing_folder git init git remote add origin gitgitcode.net:Java_1710/test.git git add . git co…

2023国赛数学建模A题思路分析

文章目录 0 赛题思路1 竞赛信息2 竞赛时间3 建模常见问题类型3.1 分类问题3.2 优化问题3.3 预测问题3.4 评价问题 4 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 竞赛信息 全国大学生数学建模…

Mac电脑如何把照片以文件格式导出?

在Mac电脑上&#xff0c;我们经常会拍摄、保存和编辑各种照片。有时候&#xff0c;我们可能需要将这些照片以文件形式导出&#xff0c;以便与他人共享、打印或备份。无论您是要将照片发送给朋友、上传到社交媒体&#xff0c;还是保存到外部存储设备&#xff0c;导出照片为文件是…

我的Python教程:使用Pyecharts画柱状图

Pyecharts是一个用于生成 Echarts 图表的 Python 库。Echarts 是一个基于 JavaScript 的数据可视化库&#xff0c;提供了丰富的图表类型和交互功能。通过 Pyecharts&#xff0c;你可以使用 Python 代码生成各种类型的 Echarts 图表&#xff0c;例如折线图、柱状图、饼图、散点图…

java不支持解压rar5的解决办法--引用本地7zip.exe

由于rar5算法未开源&#xff0c;没有合适的JAVA依赖能够解决解压rar5。在运行中报错&#xff1a; javacom.github.junrar.exception.RarException: badRarArchive 通过引用本地7zip.exe&#xff0c;命令行执行解决&#xff1a; private static void unZipRar5File(String fileP…

探索可视化应用的崭新前景

在当今数据驱动的世界中&#xff0c;可视化应用成为了一种强大的工具&#xff0c;能够将复杂的数据转化为易于理解和分析的图形形式。随着技术的不断发展和创新&#xff0c;可视化应用正迎来崭新的前景。本文将介绍可视化应用的定义、重要性以及当前的发展趋势&#xff0c;并探…

Controller是单例还是多例?

Controller是单例还是多例&#xff1f; controller默认是单例的&#xff0c;不要使用非静态的成员变量&#xff0c;否则会发生数据逻辑混乱。正因为单例所以不是线程安全的。 我们下面来简单的验证下&#xff1a; package com.riemann.springbootdemo.controller;import org…

docker配置文件

/etc/docker/daemon.json 文件作用 /etc/docker/daemon.json 文件是 Docker 配置文件&#xff0c;用于配置 Docker 守护进程的行为和参数。Docker 守护进程是负责管理和运行 Docker 容器的后台进程&#xff0c;通过修改 daemon.json 文件&#xff0c;可以对 Docker 守护进程进…