您的位置:首页 > 编程语言 > Java开发

Java基础知识总结04-数组及数组的常见操作

2019-01-21 10:57 267 查看

数组
概述:数组是一种引用类型。变量只能存放一个数据,数组则可以存放多个类型统一的数据,可以存放基本类型数据,也可以存放引用类型数据。

初始化:就是在内存当中开辟数组空间,并且赋予一些默认值。

数组初始化的方式有两种:
1.动态初始化:指定数组长度
2.静态初始化:指定数组内容

动态初始化:直接指定数组长度,也就是数组当中到底可以存放多少个数据。
第一种格式(一个步骤):

//	数据类型[] 数组名称 = new 数据类型[数组长度];
int[] array = new int[5];

解析:
①左侧的数据类型:也就是数组当中存放的元素全都是统一的什么类型。
②左侧的[] :代表这是一种数组类型
③数组名称:就是一个自定义的标识符,通过名称可以使用数组当中的数据。
④右侧的new:代表创建动作,在内存当中开辟空间,创建数组。
⑤右侧的数据类型:一定要和左侧的数据类型一样。
⑥右侧[]当中的数组长度:数组当中能存放的元素个数。

第二种格式(两个步骤):

//	数据类型[] 数组名称;
//	数组名称 = new 数据类型[数组长度];
int[] array;
array = new int[5];

静态初始化:直接指定具体元素内容
标准格式

//	数据类型[] 数组名称 = new 数据类型[]{元素1,元素2,元素3...};
int[] array = new int[]{1,2,3,4,5};

简便写法

//	数据类型[] 数组名称 = {元素1,元素2,元素3...};
int[] array = {1,2,3,4,5};

注:
①标准格式也可以拆分为两个步骤。
②一旦使用简便格式,必须一个步骤完成初始化,不能拆分为两个步骤。
如下写法错误

int[] array;
array = {1,2,3,4,5};// 错误写法

静态初始化总结
①虽然静态初始化没有指定长度,但是仍然可以根据具体元素的个数推算出长度。
②虽然简便格式当中可以不写new…,但是仍然有内存当中开辟空间的过程。
③虽然直接指定了具体元素内容,但是仍然会有默认值被替换的过程。

获取数组长度的方法:
数组名称.length
注:一个数组一旦在内存中被创建,那么数组的长度就不能发生改变。

索引(角标):
从0开始,一直到“长度-1”为止

如果访问的数组元素不存在,那么将会发生“数组索引越界异常”
java.lang.ArrayIndexOutOfBoundsException
只要出现这种异常,一定是访问的数组元素并不存在。

数组的常见操作

数组遍历(依次访问数组中的每个元素):
【代码】

public static void main(String[] args) {
int[] array = { 1, 2, 3, 4, 5 };// 定义数组
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + "\t");// 通过索引访问元素
}
}

数组最值(获取数组中的最值):
【代码】

int[] array = { 1, 2, 3, 4, 5 };// 定义数组
int max = array[0];// 定义max记住最大值,首先假设第一个元素为最大值
// for循环遍历数组中的元素
for (int i = 1; i < array.length; i++) {
if (array[i] > max) {// 比较array[i]是否大于max
max = array[i];// 条件成立,将array[i]赋值给max
}
}
System.out.println(max);// 输出最大值max = 5

数组排序(对数组中的元素进行排序):
1.冒泡排序
【代码】

int[] array = { 1, 3, 5, 7, 9, 2, 4, 6, 8, 10 };// 定义数组
for (int i = 1; i < array.length; i++) {// 排序轮数
for (int j = 0; j < array.length - i; j++) {// 排序次数
// array[j] < array[j + 1] 将较小数放最后(降序)
if (array[j] > array[j + 1]) {// 将较大数放最后(升序)
int temp = array[j];// 用临时变量交换两个数的位置
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
System.out.println("冒泡排序后:");
for (int tmp : array) {
System.out.print(tmp + "\t");
}
//输出结果为:冒泡排序后:1	2	3	4	5	6	7	8	9	10

2.选择排序
【代码】

int[] array = { 1, 0, 3, 5, 7, 9, 2, 4, 6, 8, 10 };// 定义数组
for (int i = 0; i < array.length - 1; i++) {
int min = i; // 保存最小元素下标
for (int j = min + 1; j < array.length; j++) {
if (array[min] > array[j]) {
min = j;
}
}
if (min != i) {
// 把最小元素交换到i位置
int t = array[i];
array[i] = array[min];
array[min] = t;
}
}
System.out.println("选择排序结果:");
for (int tmp : array) {
System.out.print(tmp + "\t");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: