当前位置: 首页 > article >正文

Java程序设计入门教程--数组

目录

一、一维数组创建

1. 定义数组

(1)声明

(2)分配数组内存空间

2. 数组初始化

(1)静态初始化

(2)动态初始化

3. 一维数组的拷贝

(1)数组元素的拷贝

(2)数组名的拷贝

二、一维数组访问

(1)一维数组遍历

(2)foreach循环

(3)案例:

​编辑

三、二维数组创建

四、二维数组访问


一、一维数组创建

1. 定义数组

(1)声明

声明一个一维数组的方法很简单,格式如下:

               数据类型名[ ]   数组名;   或    数据类型名  数组名[ ];

若声明一个数组,即先声明数组的数据类型(可以是基本数据类型或者是引用类型),它决定了数组中的每个元素都是该数据类型,再声明数组的名字。

       声明一个整型数组a:

int[] a; 或 int a[];

(2)分配数组内存空间

声明一个一维数组之后,就可以通过new关键字为其申请分配内存空间,格式为:

                             new  数组类型[数组大小]

其中[数组大小]是一个整型常量值,可以通过数组属性length来访问。

如:int[] intArray = new int[5];

       此处定义一个整型数组intArray,其中包含5个元素,每个元素为int类型,共向系统申请20个字节的内存空间。

2. 数组初始化

        一维数组初始化根据实现方式不同,可以分为静态初始化和动态初始化。数组所需的内存空间是在其初始化的时候由系统分配的。

(1)静态初始化

        静态初始化,即在声明数组的时候,直接用数据为其赋值,此时数组的大小由初始化数据的个数决定。

如:int intArray[]={1,2,3,4}; // intArray数组大小为4

    String stringArr[]={"abc", "How", "you"};//stringArr数组大小为3

(2)动态初始化

        动态初始化,即通过new 关键字为数组申请内存空间并赋值,其中对于类类型数组需要明确数组结构,并为每个数组元素申请空间。

String stringArray[ ]= new String[2]; //确定数组有2个元素

stringArray[0]= new String("abc");//为第一个数组元素分配空间

stringArray[1]= new String("123");//为第二个数组元素分配空间

3. 一维数组的拷贝

        这个问题可以分解为两个子问题:

        一是数组元素的拷贝;  

        二是数组名的拷贝。

(1)数组元素的拷贝

        数组元素的拷贝属于值复制,即把数组元素的值作一个完全的复制。

        比如:

int[] a={1,2,3};

int x=a[1];  // 变量x具有了数组元素 a[1]的完全备份

(2)数组名的拷贝

       数组名的拷贝属于地址复制,即把数组首元素的地址复制过去,而数组的实体(各数组元素的值)没有复制过去,这样处理的结果是,两个数组名管理着同一个数组实体空间。

public static void main(String[] args) 
{
	int[] a = new int[3];
	int[] b = a;
	a[0]=1;
	a[1]=2;
	a[2]=3;
	System.out.println(a[2]);
	b[2]=444;
	System.out.println(b[2]);
	System.out.println(a[2]);
}

输出结果:

二、一维数组访问

(1)一维数组遍历

       数组遍历是数组应用中的最基本操作,指的是每一个数组元素至少被访问一次,每次访问的具体操作可以是读取或修改。

       遍历数组首先要知道数组大小,Java提供了length属性方便获取数组大小

                  格式: 数组名.length

       利用for循环与数组长度length属性的结合,可以高效地实现数组的遍历。

int[] a = new int[15];
for(int i=0; i<a.length; i++)
{
	a[i]=55;
}

(2)foreach循环

        自JDK 1.5.0Java提供了增强型for的新特性,称为foreach循环,格式如下:  

            for (元素类型  临时变量x : 遍历对象obj)

                     {    访问x的语句;    }

        foreach循环常用于数组遍历,简单而高效。

int arr[] = {2, 3, 1}; //数组元素arr[0]~arr[2]  

for(int x : arr)   //每次循环读取arr[i]的值,并存入变量x且i自增1 
{
	System.out.print(x+“ ”); //依次输出数组元素的值:1 2 3

}

(3)案例

 输出结果:

三、二维数组创建

四、二维数组访问


http://www.kler.cn/news/17369.html

相关文章:

  • 小球下落(dropping balls)uva679
  • go 打包文件夹成zip文件
  • Envoy控制面实践
  • 漫画 | Linux之父:财务自由以后,我失眠了!
  • 华为OD机试 - 整理扑克牌(Python)
  • [计算机图形学]光场,颜色与感知(前瞻预习/复习回顾)
  • 对比 LVS 负载均衡群集的 NAT 模式和 DR 模式,基于 CentOS 7 构建 LVS-DR 群集
  • springboot 集成 shardingSphere 加mybatisplus 自带增加 分页查询 和源代码包 分库分表 单库 分表 使用雪花算法id
  • node.js 处理路径问题
  • VR与AR:哪个有更大的潜力改变未来?
  • 今天面了个字节跳动拿35K出来的,真是砂纸擦屁股,给我露了一手啊
  • Skywalking
  • gtest之高级主题
  • Spring常用注解总结
  • PAT A1024 Palindromic Number
  • Java对象的创建方式以及对象的引用
  • 【Elsevier】中科院2区TOP, 高被引119篇, 稳定检索22年, 1周可见刊,5月15截稿~
  • Simulink 自动代码生成电机控制:弱磁控制从仿真到硬件开发板验证实验
  • 豪取BAT!超详细暑期实习算法面经(非科班无论文)
  • 如何监控一个程序的运行情况,然后视情况将进程杀死并重启
  • redis使用总结
  • 对传递函数的零极点、频率响应、稳定性的理解
  • Vue3 如何全局使用按钮截流指令
  • 复古决战快速施法穿墙秒怪分析流程及安全防护
  • 网络基础设施 拥塞控制
  • 基于JavaWeb实现的寻码网文章资讯管理系统
  • 动态页面配置
  • 我有一个方法判断你有没有编程天赋
  • ElasticSearch学习随笔之分词算法
  • 第17章 信息系统安全管理