下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 4/4java数组的概念和作用 1 数组的概念 和其他语言一样,Java也提供数组支持,数组是属于引用类型,即数组是一个 对象。 强调数组的类型是引用类型。 数组的基本概念及作用 数组是相同数据类型元素的集合 数组本身是引用数据类型,即对象。但是数组可以存储基本数据类型,也可以存储引用数据类型。 数组的举例 int a = new int 1,2,3,4,5; String s = new String 小熊,小小熊,小小小熊; Employee e=new Employee10;(Employee是自定义类) 2 数组的声明 数组的声明的两种方式: 数据类型 数组名字例如:int a; 数
2、据类型数组的名字 例如: int a ; 注意: 在Java语言中两种声明方法没有任何区别,但是建议大家用第一种,避免混淆a的数据类型。 数组在声明后还只是一个空指针,不能使用,要想使用必须创建。 数组创建的三种方式: ?/声明数组的同时,根据指定的长度分配内存,但数组中元素值都为默认的初始化值 char chAry = new char10; ?/声明数组并分配内存,同时将其初始化 ?int ary1 = new int1, 2, 3, 4, 5; ?/与前一种方式相同,仅仅只是语法相对简略 ?int ary2 = 1, 2, 3, 4, 5; 从另一个角度,数组创建可以分为动态和静态两种
3、动态创建数组(没有为元素赋值,可以结合for循环进行赋值) char chAry = new char10; 静态创建数组,在创建的时候,即为每个元素赋初值 int ary1 = new int1, 2, 3, 4, 5; 数组的长度 数组的长度:length属性 int b1 = new int 1,2,3,4,5,6,7; System.out.println(b1.length); 注意:数组的长度是属性,String的长度是length(); 创建数组的时候必须指定数组的长度,而且一经定义则不允许改变。 数组的长度虽然是7,但是在内存中实际给8个位置,另外一个存储7. 数组之间赋值 在
4、C语言中,不可以将数组直接赋值给另一个数组; 在Java中,语法上允许这样做,但实际得到的效果是两个数组引用指向同一块内存。 int ary1 = 2, 4, 6, 8, 10; int ary2; ary2 = ary1; /允许这样赋值 数组赋值示例 public class ArrayDemo public static void main(String args) int ary1 = 2, 4, 6, 8, 10; /声明并初始化数组1 int ary2; /声明数组2 ary2 = ary1; /将数组1赋值给数组2 ary23 = 1024; /通过数组2修改其中一个元素的值 /
5、打印出数组1中的元素 System.out.println(数组1中的元素:); for (int i = 0; i ary1.length; i+) System.out.println(ary1i); /打印出数组2中的元素 System.out.println(数组2中的元素:); for (int i = 0; i ary2.length; i+) System.out.println(ary2i); 3 数组的访问 数组元素的访问: 数组名字索引 例如:a2; 注意: 数组的索引从0开始。 索引的数据类型是整型 索引最大值和数组长度始终差1 数组的迭代 数组迭代的两种方式: 第一种:
6、for循环 int b1 = new int 1,2,3,4,5,6,7; System.out.println(b10); System.out.println(b12); /数组的迭代 for(int i =0;ib1.length;i+) System.out.println(b1i); 第二种:增强for循环 int b1 = new int 1,2,3,4,5,6,7; /增强for循环 for(数组元素的类型临时变量名字:数组的名字) System.out.println(临时变量名字 ); 即: for(int x:b1) System.out.println(x); 注意: 两
7、种方式的迭代都可以,第二种在企业项目开发中较为常用增强for循环是JDK5之后增加的新特性。 多维数组的定义 二维数组的定义: 多维数组即数组的数组,即数组的元素也是数组 例如: int a = 1,1,2,1,2,3; 二维数组的声明: 三种方式: int a; int a1; int a2; 注意:建议用第一种,不容易混淆a的数据类型 int a = new int 2; a0 = 1,2,3; a1 = 4,5,6; 多维数组的迭代: int b1 = new int 1,2,3,4; for(int i =0;ib1.length;i+) for(int j =0;jb1i.lengt
8、h;j+) System.out.print(b1ij); 数组的拷贝 在JDK API的System类中,提供了一个数组拷贝的静态方法: arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束 int a=10,100,1000; int b=20,200,2000,20000; System.arraycopy(a, 1, b, 2, 2); for(int x:b) System.out.println(x); 输出结果 20
9、 200 100 1000 值传递的定义 值传递的本质是赋值,是把实际参数赋值给形式参数的过程 基本数据类型是值之间进行赋值 引用数据类型虚拟地址之间进行赋值 基本数据类型:传递的是值(value)的拷贝 package com.etc.chapter03; public class TestPass public void add(int x) x+; System.out.println(add()方法:x=+x); public static void main(String args) TestPass pass=new TestPass(); int x=100; pass.add(
10、x); System.out.println(main()方法:x=+x); 用类型:传递的是引用(reference) public class TestByReference public void test(PersonalAccount a) a.deposit(2000); System.out.println(test 方法中a的余额=+a.getBalance(); public static void main(String args) PersonalAccount a=new PersonalAccount(3333,123,1900); TestByReference t=new Tes
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026 年重症监护室科室探视管理工作小结
- 2026 年烈士纪念日弘扬英烈精神奋进新征程课件
- 2026 年欢庆丰收时刻厚植劳动崇高品质课件
- 重症监护病房医院感染预防与控制规范考核试题及答案
- 激素调节单元试题及答案
- 钛白粉生产工岗前可持续发展考核试卷含答案
- 光学数控磨工安全生产基础知识强化考核试卷含答案
- 植物标本采集制作工安全技能能力考核试卷含答案
- 石材加工工岗前技术理论考核试卷含答案
- 盐酸多巴胺的考试题目及答案展示
- 2026 秋新人教版一年级上册小学数学核心素养教案
- 国家能源集团2026年秋招笔试题库
- 交期延误预警及处理流程
- 超龄劳动者用工合规与工伤保险实操指南
- 2025年消防工程师继续教育题库-含解析-161题
- 头-胸-腹(骨盆)多发伤诊疗指南(2026版)
- 结直肠癌肠造口患者居家管理专家共识总结2026
- 茶文化与茶艺PPT全套完整教学课件
- 生物技术制药-课件
- 合肥市社区工作者考试真题及答案2022
- 贵州某矿尾矿库岩土工程勘察
评论
0/150
提交评论