Java基础教程【第五章:Java数组】

简介: Java基础教程【第五章:Java数组】

1. 数组的创建和声明

1.1定义

数组是一个长度固定的数据结构,它存储多个相同类型的数值。数组直接被 Java 编程语言所支持,数组也是一个对象(引用数据类型)。数组是一个 Object 类的一个不明显的扩展。


1.2特征

有序、具有相同类型、通过数组名和下标确定数组中的元素。


1.3数组的声明

a)数组的元素类型 数组变量名[];


b)数组的元素类型[] 数组变量名;


1.4创建数组空间

创建数组空间可以在声明的时候进行创建,也可以先声明然后在创建空间。

数组名=new 数组元素类型[数组的长度];

int[] arr = new int[10];

等同于下面的

int[] arr;
arr=new int[10];

2. 数组的初始化和元素

2.1数组元素

数组中的每个元素都是有先后顺序的,可以通过下标(索引)来指定对应位置的元素。下标(索引)是从 0 开始,即0 表示第一个元素,1 表示第二个元素;


初始化数组就是要使数组中每个元素具有确定的值,如果数组元素类型为基本数据类型,由于基本数据类型都有缺省值,数组会自动将元素初始化为缺省值,对于元素类型为引用数据类型的数组,初始化数组的每个元素则是必要的,否则元素为 null。

int[] arr = new int[5];//声明并创建数组空间
System.out.println(arr[0]);//0
System.out.println(arr[1]);//0
arr[0]=10;//通过指定下标对数组的元素进行赋值
System.out.println(arr[0]);//10

PS:每个数组都有一个属性 length,表示该数组可以存放元素的个数。Java 环境会自定检测数组的下标是否越界。

//通过for循环遍历数组中的所用元素
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}


//通过增强for循环遍历
for (int i : arr) {
System.out.println(i);
}

4

增强 for 循环是 JDK5.0 的新特性,内部使用的是迭代的方法 iteratoer 来实现的。只可以用来遍历集合不可以对集合中的元素进行赋值。


2.2数组初始化

数组的静态初始化和动态初始化:

a)动态初始化:使用 new 关键字初始化,需要指定数组的长度。

int[] arr = null;
arr = new int[5];
//通过for循环对数组的元素进行赋值
for (int i = 0; i < arr.length; i++) {
arr[i]=i+10;
}


b)静态初始化:在声明的同时进行初始化,需要指定数组的元素,根据元素由系统指定它的长度。


int[] arr={6,5,4,3,2};
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}


PS:注意静态初始化和动态初始化的区别。


3. 一维数组

一维数组的内存划分:


(a)对于基本数据类型:以int为例


//静态初始化
int[] arr = {3,4,5};
//动态初始化
int[] arr1 = null;
arr1[0]=3;
arr1[1]=4;
arr1[2]=5;

image.png

(b)对于引用数据类型:以 String 为例


//静态初始化
String[] strs = {"java","html","javaScript"};

image.png


//动态初始化
String[] strs = new String[3];
String a = new String("java");
String b = new String("html");
String c = new String("javascript");
strs[0] = a;
strs[1] = b;
strs[2] = c;

image.png

4. 二维数组

4.1静态初始化和遍历

int[ ][ ] arr = {{12,44,35,14,3},{76,54,31,34},{21,314},};
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j]+"\t");// 一维数组的输出
}
System.out.println();
}


4.2动态初始化和遍历

//3是二维数组的长度,其中二维数组的元素是一个一维数组
int[ ][ ] arr = new int[3][ ];
arr[0]=new int[2];
arr[1]=new int[3];
arr[2]=new int[4];
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j]+"\t");// 一维数组的输出
}
System.out.println();
}
目录
相关文章
|
1天前
|
前端开发 Java 测试技术
《手把手教你》系列技巧篇(四十二)-java+ selenium自动化测试 - 处理iframe -下篇(详解教程)
【5月更文挑战第6天】本文介绍了如何使用Selenium处理含有iframe的网页。作者首先解释了iframe是什么,即HTML中的一个框架,用于在一个页面中嵌入另一个页面。接着,通过一个实战例子展示了在QQ邮箱登录页面中,由于输入框存在于iframe内,导致直接定位元素失败。作者提供了三种方法来处理这种情况:1)通过id或name属性切换到iframe;2)使用webElement对象切换;3)通过索引切换。最后,给出了相应的Java代码示例,并提醒读者根据iframe的实际情况选择合适的方法进行切换和元素定位。
7 0
|
2天前
|
Java 测试技术 数据库
【JAVA基础篇教学】第十七篇:Java单元测试
【JAVA基础篇教学】第十七篇:Java单元测试
|
2天前
|
SQL Java 关系型数据库
【JAVA基础篇教学】第十六篇:Java连接和操作MySQL数据库
【JAVA基础篇教学】第十六篇:Java连接和操作MySQL数据库
|
2天前
|
XML Java 数据库连接
【JAVA基础篇教学】第十五篇:Java中Spring详解说明
【JAVA基础篇教学】第十五篇:Java中Spring详解说明
|
2天前
|
设计模式 Java
【JAVA基础篇教学】第十四篇:Java中设计模式
【JAVA基础篇教学】第十四篇:Java中设计模式
|
2天前
|
Java
【JAVA基础篇教学】第十三篇:Java中I/O和文件操作
【JAVA基础篇教学】第十三篇:Java中I/O和文件操作
|
2天前
|
Java
【JAVA基础篇教学】第十二篇:Java中多线程编程
【JAVA基础篇教学】第十二篇:Java中多线程编程
|
2天前
|
存储 Java 索引
【JAVA基础篇教学】第十一篇:Java中字符串操作详解
【JAVA基础篇教学】第十一篇:Java中字符串操作详解
|
2天前
|
存储 Java
【JAVA基础篇教学】第十篇:Java中Map详解说明
【JAVA基础篇教学】第十篇:Java中Map详解说明
|
2天前
|
Java 索引
【JAVA基础篇教学】第九篇:Java中Set详解说明
【JAVA基础篇教学】第九篇:Java中Set详解说明