一维数组
Posted 寒露凝珠
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一维数组相关的知识,希望对你有一定的参考价值。
1、概念:
- 在Java程序中记录多个类型相同的数据内容时,则声明一个一维数组,一维数组本质就是在内存空间中申请一段连续的存储单元。
- 数组是相同数据类型的多个元素的容器,元素按照线性顺序排列,在Java语言中体现为一种引用数据类型。
2、一维数组的声明方式
-
数据类型 [] 数组名称 = new 数据类型 [数组长度];
-
调用数组的length属性可以获取数组的长度;
-
可以通过下标的方式访问数组中的每一个元素。需要注意的是:数组的下标从0开始,对于长度为n的数组,下标的范围是0 ~ n-1。

3、一维数组的使用
/*
编程实现以为数组的声明和使用
*/
import java.util.Scanner;
public class ArrayTest {
public static void main(String [] args) {
Scanner sc = new Scanner(System.in);
//声明一个长度为2元素类型为int类型的一维数组
int [] array = new int[2];
System.out.println("输入数组的元素:");
for(int i = 0; i <array.length; i++) {
array[i] = sc.nextInt();
}
//打印一维数组的长度以及每个元素的数值
int len = array.length;
for(int j = 0; j < array.length; j++) {
System.out.println("array[" + j + "]:" + array[j]);
}
System.out.println("数组的长度是:" + len);
}
}
4、一维数组的初始化方式:
-
基本类型的数组(数据元素的基本类型)创建后,其元素的初始值:byte、short、char、int、long为0,float和double为0.0;boolean为false。
-
可以在数组声明的同时进行初始化,具体如下:
数据类型 [] 数组名称 = {初始值, 初始值,...};
数据类型 [] 数组名称 = new 数据类型 [] {初始值, 初始值,...};
5、内存结构
栈区:
- 栈用于存放程序运行过程中所有的局部变量。一个运行的Java程序从开始到结束会有多次变量的声明。
堆区:
- JVM会在其内存空间开辟一个称为“堆”的存储空间,这部分空间用于存储使用new关键字创建的数组和对象。
案例:
/*
案例题目:
1、声明一个长度为5元素类型为int类型的一维数组,打印数组中所有元素值;
2、使用元素11、22、33、44分别对数组中前四个元素赋值后再次打印;
3、将元素55插入到下标为0的位置,原有元素向后移动,再打印所有元素值;
4、将元素55从数组中删除,删除方式为后续元素向前移动,最后位置置为0
并打印;
5、查找数组中是否存在元素22,若存在则修改为220后再次打印所有元素;
*/
public class ArrayCaseTest {
public static void main(String [] args) {
//1、声明一个长度为5元素类型为int类型的一维数组
int [] arr = new int[5];
//打印数组中所有元素值
for(int i = 0; i < arr.length; i++) {
System.out.println("arr[" + i + "]:" + arr[i]);
}
System.out.println("----------------");
//2、使用元素11、22、33、44分别对数组中前四个元素赋值后再次打印;
arr[0] = 11;
arr[1] = 22;
arr[2] = 33;
arr[3] = 44;
for(int i = 0; i < arr.length; i++) {
System.out.println("arr[" + i + "]:" + arr[i]);
}
System.out.println("----------------");
//3、将元素55插入到下标为0的位置,原有元素向后移动,再打印所有元素值;
for(int i = 4; i > 0; i--) {
arr[i] = arr[i-1];
}
arr[0] = 55;
for(int i = 0; i < arr.length; i++) {
System.out.println("arr[" + i + "]:" + arr[i]);
}
System.out.println("----------------");
//4、将元素55从数组中删除,删除方式为后续元素向前移动,最后位置置为0,并打印;
for(int i = 0; i < arr.length-1; i++) {
arr[i] = arr[i+1];
}
arr[4] = 0;
for(int i = 0; i < arr.length; i++) {
System.out.println("arr[" + i + "]:" + arr[i]);
}
System.out.println("----------------");
//5、查找数组中是否存在元素22,若存在则修改为220后再次打印所有元素;
for(int i = 0; i < arr.length; i++) {
if(arr[i] == 22) {
arr[i] = 220;
}
}
for(int i = 0; i < arr.length; i++) {
System.out.println("arr[" + i + "]:" + arr[i]);
}
}
}
6、一维数组的优缺点
- 可以直接通过下标(或索引)的方式访问指定位置的元素,速度很快。
- 数组要求所有元素的类型相同。
- 数组要求内存空间连续,并且长度一旦确定就不能更改。
- 增加和删除元素时可能移动大量元素,效率低。
文章内容输出来源:拉勾教育Java高薪训练营
以上是关于一维数组的主要内容,如果未能解决你的问题,请参考以下文章