热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

全新Java入门到架构师课程之Java15编程基础数组(1):数组声明、初始化、数组元素的界限和遍历

一、一维数组1、数组概述数组是相同类型数据的有序集合。数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中,每一个数据称作一个元素,每个元素可以通过一个索引

全新Java入门到架构师课程之Java15编程基础-数组(1):数组声明、初始化、数组元素的界限和遍历

一、一维数组

1、数组概述

数组是相同类型数据的有序集合。数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中,每一个数据称作一个元素,每个元素可以通过一个索引(下标)来访问它们。

这些按序排列的同类数据元素的集合称为数组“[]”。

2、特点

  • 定长

长度一旦确定不可以改变。

  • 相同数据类型

其元素必须是 相同 类型,不允许出现混合类型。数组中的元素可以是任何数据类型,包括基本类型和引用类型。

  • 位置有序

元素所在的位置是有序的。

  • 数组本身属于引用类型

数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象Java 中对象是在堆中的,因此数组无论保存基本类型还是其他对象类型,数组对象本身是在堆中的。

  • 数组中可以存储任意类型的数据

二、数组声明和初始化

1、数组声明格式

数据类型[] 数组名称;  --推荐使用
数据类型 数组名称[];

double[] arr;
char  arr2[];

 

注意 : 引用数据类型只声明不赋值存在默认值null

本文是java入门到架构师全套教程之中的Javascript部分的文档,如需全新完整Java大数据架构师课程资源,请私信我哦~

2、数组初始化

动态初始化

数组定义与为数组元素分配空间和赋值的操作分开进行。

数据类型[] 数组名=new 数据类型[长度];
int[] data = new int[5];

 

注意:元素为引用数据类型的数组中的每一个元素都需要实例化。

Person[] people;             //声明说组
people = new Person[3];        //创建数组
people[0] = new Person();   //数组中元素实例化
people[1] = new Person();
people[2] = new Person();

 

静态初始化

在定义数组的同时就为数组元素分配空间并赋值。

数据类型[] 数组名=new 数据类型[]{值1,值2...}; 
数据类型[] 数组名={值1,值2...};                 --当面的简写方式
int[] arr=new int[]{1,3,4,6};
int[] arr2={1,2,3,4,5};

 

注意: 对于返回值类型为数组类型的方法来说,我们可以return new int[3];,我们也可以return new int[]{1, 2, 3};,但我们不可以return {1, 2, 3};。即简写方式,其不能脱离数组的声明,{1, 2, 3}并不能返回一个数组对象。

一维数组对象演示图

 

三、数组的默认值

数组中的元素只声明不赋值存在默认值,数组是引用类型,它的元素相当于类的成员变量,因此数组分配空间后,每个元素也被按照成员变量的规则被隐式初始化。

一般规律为数值型数组默认值为 0,引用型数组默认值为 null:

 

四、数组元素

1、数组元素的界限

定义并用 new 为之分配空间之后,才可以引用数组中的每个元素,数组元素的引用方式为:

arrayName[index];

index为数组元素下标|索引,可以是整型常量或整型表达式 , 可以根据数组元素的下标操作数组中数据。如:

arr1[3] = 5;                  //为数组索引为0的空间位置赋值
arr2[0] = "张三";            //为数组索引为0的空间位置赋值
System.out.println(arr3[2]);//获取数组中索引为2的数据值

 

数组元素下标从0开始;长度为n的数组的合法下标取值范围为

0~n-1

每个数组都有一个属性length指明它的长度

a.length的值为数组a的长度(元素的个数)

2、数组元素遍历方式

(1)普通for循环

for(int 索引=0;索引<长度; 索引++){
    数组名称[索引] = 值;
}

int[] arr={1,2,3,4};
//1.遍历数组---基本for循环
for(int i=0;i){
    //变量i代表索引/元素的下标
    System.out.println(arr[i]);
}

 

(2)增强for循环

for(元素类型  局部变量 : 数组){
    局部变量-->为数组中的每一个元素值,从左向右以此获取
}

//2.遍历数组---增强for循环
for(int i : arr){
    System.out.println(i); //i中存储数组的元素值,非索引
}

 

本文是java入门到架构师全套教程之中的Javascript部分的文档,如需全新完整Java大数据架构师课程资源,请私信我哦~

接下来我会讲述数组练习、Arrays、二维数组等,欢迎关注点赞评论,如需全套java大数据课程资料,也可以与我互动分析呢。


推荐阅读
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 本文介绍了基于c语言的mcs51单片机定时器计数器的应用教程,包括定时器的设置和计数方法,以及中断函数的使用。同时介绍了定时器应用的举例,包括定时器中断函数的编写和频率值的计算方法。主函数中设置了T0模式和T1计数的初值,并开启了T0和T1的中断,最后启动了CPU中断。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 基于事件驱动的并发编程及其消息通信机制的同步与异步、阻塞与非阻塞、IO模型的分类
    本文介绍了基于事件驱动的并发编程中的消息通信机制,包括同步和异步的概念及其区别,阻塞和非阻塞的状态,以及IO模型的分类。同步阻塞IO、同步非阻塞IO、异步阻塞IO和异步非阻塞IO等不同的IO模型被详细解释。这些概念和模型对于理解并发编程中的消息通信和IO操作具有重要意义。 ... [详细]
  • 判断数组是否全为0_连续子数组的最大和的解题思路及代码方法一_动态规划
    本文介绍了判断数组是否全为0以及求解连续子数组的最大和的解题思路及代码方法一,即动态规划。通过动态规划的方法,可以找出连续子数组的最大和,具体思路是尽量选择正数的部分,遇到负数则不选择进去,遇到正数则保留并继续考察。本文给出了状态定义和状态转移方程,并提供了具体的代码实现。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
author-avatar
唐僧
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有