Java————数组

news2024/11/20 18:35:58

1 、数组

数组可以看成是相同类型元素的一个集合,
在内存中是一段连续的空间。

每个空间有自己的编号,其实位置的编号为0,即数组的下标。

数组是引用类型。

在这里插入图片描述

1. 数组的创建

T[] 数组名 = new T[N];


T:表示数组中存放元素的类型 
T[]:表示数组的类型 
N:表示数组的长度



int[] array1 = new int[10];       // 创建一个可以容纳10个int类型元素的数组 
double[] array2 = new double[5];  // 创建一个可以容纳5个double类型元素的数组 
String[] array3 = new double[3];  // 创建一个可以容纳3个字符串元素的数组

2. 数组的初始化

如果没有对数组进行初始化,数组中元素有其默认值。

如果数组中存储元素类型为引用类型,默认值为null。

如果数组中存储元素类型为基类类型,
默认值为基类类型对应的默认值,比如:
在这里插入图片描述

  • 静态初始化:
    在创建数组时不直接指定数据元素个数,
    而直接将具体的数据内容进行指定。

    静态初始化虽然没有指定数组的长度,
    编译器在编译时会根据{}中元素个数来确定数组的长度。

    静态初始化时, {}中数据类型必须与[]前数据类型一致。

    静态初始化可以简写,省去后面的new T[]。

T[] 数组名称 = {data1, data2, data3, ..., datan};


int[] array1 = new int[]{0,1,2,3,4,5,6,7,8,9};
double[] array2 = new double[]{1.0, 2.0, 3.0, 4.0, 5.0}; 
String[] array3 = new String[]{"hell", "Java", "!!!"};


// 注意:虽然省去了new T[], 但是编译器编译代码时还是会还原 int[] array1 = {0,1,2,3,4,5,6,7,8,9};
double[] array2 = {1.0, 2.0, 3.0, 4.0, 5.0};
String[] array3 = {"hell", "Java", "!!!"};


// 静态和动态初始化也可以分为两步,但是省略格式不可以。
int[] array1;
array1 = new int[10];

 
int[] array2;
array2 = new int[]{10, 20, 30};

 
// 注意省略格式不可以拆分, 否则编译失败
// int[] array3;
// array3 = {1, 2, 3};
  • 动态初始化:
    在创建数组时,直接指定数组中元素的个数。
int[] array = new int[10];

3. 数组的使用

数组在内存中是一段连续的空间,
支持随机访问,即通过下标访问快速访问数组中任意位置的元素。

下标从0开始,介于[0, N)之间不包含N,N为元素个数,不能越界,
否则会报出下标越界异常。


int[] array = {1, 2, 3};
System.out.println(array[3]);  // 数组中只有3个元素,下标一次为:0  1  2,array[3]下标越界


// 执行结果
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 100
        at Test.main(Test.java:4)


使用数组一定要下标谨防越界.

4. 遍历数组

int[]array = new int[]{10, 20, 30, 40, 50};
for(int i = 0; i < array.length; i++){
    System.out.println(array[i]);

}



// 也可以使用 for-each 遍历数组

int[] array = {1, 2, 3};
for (int x : array) {
    System.out.println(x);

}

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

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

相关文章

Kakfa - Producer机制原理与调优

Producer是Kakfa模型中生产者组件&#xff0c;也就是Kafka架构中数据的生产来源&#xff0c;虽然其整体是比较简单的组件&#xff0c;但依然有很多细节需要细品一番。比如Kafka的Producer实现原理是什么&#xff0c;怎么发送的消息&#xff1f;IO通讯模型是什么&#xff1f;在实…

对Docker的认识和总结

Docker简介 Docker 是一个开源的应用容器引擎&#xff0c;让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中&#xff0c;然后发布到任何流行的 Linux或Windows操作系统的机器上&#xff0c;也可以实现虚拟化。容器是完全使用沙箱机制&#xff0c;相互之间不会有任何接…

数据结构入门 — 二叉树的概念、性质及结构

本文属于数据结构专栏文章&#xff0c;适合数据结构入门者学习&#xff0c;涵盖数据结构基础的知识和内容体系&#xff0c;文章在介绍数据结构时会配合上动图演示&#xff0c;方便初学者在学习数据结构时理解和学习&#xff0c;了解数据结构系列专栏点击下方链接。 博客主页&am…

学习记忆——英语——字母编码

字母编码表 A&#xff1a;苹果 &#xff1b; B&#xff1a;一支笔或者小男孩boy &#xff1b; C&#xff1a;月亮或者镰刀 &#xff1b; D&#xff1a;笛子或者弟弟或者狗dog &#xff1b; E&#xff1a;大白鹅 &#xff1b; F&#xff1a;斧头 &#xff1b; G&#xff1a;鸽子…

Python:安装Flask web框架hello world示例

安装easy_install pip install distribute 安装pip easy_install pip 安装 virtualenv pip install virtualenv 激活Flask pip install Flask 创建web页面demo.py from flask import Flask app Flask(__name__)app.route(/) def hello_world():return Hello World! 2023if _…

Spring注解家族介绍: @RequestMapping

前言&#xff1a; 今天我们来介绍RequestMapping这个注解&#xff0c;这个注解的内容相对来讲比较少&#xff0c;篇幅会比较短。 目录 前言&#xff1a; RequestMapping 应用场景&#xff1a; 总结&#xff1a; RequestMapping RequestMapping 是一个用于映射 HTTP 请求…

[Linux打怪升级之路]-缓冲区

前言 作者&#xff1a;小蜗牛向前冲 名言&#xff1a;我可以接受失败&#xff0c;但我不能接受放弃 如果觉的博主的文章还不错的话&#xff0c;还请点赞&#xff0c;收藏&#xff0c;关注&#x1f440;支持博主。如果发现有问题的地方欢迎❀大家在评论区指正 本期学习目标&…

SpringCloud Ribbon--负载均衡 原理及应用实例

&#x1f600;前言 本篇博文是关于SpringCloud Ribbon的基本介绍&#xff0c;希望你能够喜欢 &#x1f3e0;个人主页&#xff1a;晨犀主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是晨犀&#xff0c;希望我的文章可以帮助到大家&#xff0c;您的满意是我的动力…

深入理解线程安全

引言&#xff1a; 在多线程编程中&#xff0c;线程安全是一个至关重要的概念。线程安全可能到导致数据不一致&#xff0c;应用程序崩溃和其他不可预测的后果。本文将深入探讨线程安全问题的根本原因&#xff0c;并通过Java代码示例演示如何解决这些问题。 线程安全的根本原因 …

element plus Infinite Scroll 无限滚动

欢迎关注我的公众号&#xff1a;夜说猫&#xff0c;让一个贫穷的程序员不靠打代码也能吃饭~ element plus官网中&#xff0c;Infinite Scroll示例使用的是数字&#xff0c;在实际项目运用中&#xff0c;我们更多的是使用json数组进行渲染&#xff0c;所以我们改写v-infinite-sc…

Visual Studio2019报错

1- Visual Studio2019报错 错误 MSB8036 找不到 Windows SDK 版本 10.0.19041.0的解决方法 小伙伴们在更新到Visual Studio2019后编译项目时可能遇到过这个错误&#xff1a;“ 错误 MSB8036 找不到 Windows SDK 版本 10.0.19041.0的解决方法”&#xff0c;但是我们明明安装了该…

网络安全攻防对抗之隐藏通信隧道技术整理

完成内网信息收集工作后&#xff0c;渗透测试人员需要判断流量是否出得去、进得来。隐藏通信隧道技术常用于在访问受限的网络环境中追踪数据流向和在非受信任的网络中实现安全的数据传输。 一、隐藏通信隧道基础知识 &#xff08;一&#xff09;隐藏通信隧道概述 一般的网络通…

Python图像融合处理和 ROI 区域绘制基础

文章目录 一、图像融合二、图像 ROI 区域定位三、图像属性3.1 shape3.2 size3.3 dtype四、图像通道分离及合并4.1、split()函数4.2 merge()函数五、图像类型转换一、图像融合 图像融合通常是指多张图像的信息进行融合,从而获得信息更丰富的结果,能够帮助人们观察或计算机处理…

微服务保护-隔离

个人名片&#xff1a; 博主&#xff1a;酒徒ᝰ. 个人简介&#xff1a;沉醉在酒中&#xff0c;借着一股酒劲&#xff0c;去拼搏一个未来。 本篇励志&#xff1a;三人行&#xff0c;必有我师焉。 本项目基于B站黑马程序员Java《SpringCloud微服务技术栈》&#xff0c;SpringCloud…

SOAP WebService 发布服务成功,但是访问404

原因 我这里是出在路由问题&#xff0c;因为一般我们都会配置WebServiceConfig&#xff0c;WebServiceConfig里又会定义ServletRegistrationBean&#xff0c;用于将一个Servlet注册到Web应用程序中&#xff0c;这里会配置上路径&#xff0c;如下&#xff1a; 但是项目有可能在…

再战SDRAM与资料整理。

总之只要阅读操作手册&#xff0c;按照时序来&#xff0c;完全不难&#xff01; 器件记录&#xff1a; 小梅哥AC620上SDRAM&#xff1a;M12L2561616A-6TG2T 其的存储空间为16M*16256MB&#xff0c;第二行的数字则与其速度等级有关&#xff1b;其分为&#xff1a; 4bank*16bit…

NLP(6)--Diffusion Model

目录 一、Flow-Based General Model 1、概述 2、函数映射关系 3、Coupling Layer 4、Glow 二、Diffusion Model 1、概述 2、前向过程 3、反向过程 4、训练获得噪声估计模型 5、生成图片 三、马尔科夫链 一、Flow-Based General Model 1、概述 Flow-Based General…

C 通过宏定义重定义malloc - free,预防内存泄露

系列文章目录 C模版基础 文章目录 目录 代码地址 相关说明 使用案例 代码地址 GitHub - CHENLitterWhite/CPPWheel: CPP自封装的库 /* * 作者: 干饭小白 * 时间: 2023-09-25 16:00:00:00 * * 说明: * 只能检测 malloc 和 free,无法检测 new delete */ #pra…

[Linux入门]---Linux指令②

文章目录 Linux系统常用指令1.man指令2.echo3.cp指令&#xff08;重要&#xff09;4.mv指令&#xff08;重要&#xff09;&#xff1a;5.alias指令6.cat指令7.more指令8.less指令&#xff08;重要&#xff09;9.head指令10.tail指令11.时间相关的指令1.在显示方面2.在设定时间方…

Redis环境配置

【Redis解压即可】链接&#xff1a;https://pan.baidu.com/s/1y4xVLF8-8PI8qrczbxde9w?pwd0122 提取码&#xff1a;0122 【Redis桌面工具】 链接&#xff1a;https://pan.baidu.com/s/1IlsUy9sMfh95dQPeeM_1Qg?pwd0122 提取码&#xff1a;0122 Redis安装步骤 1.先打开Redis…