一维数组

Posted 寒露凝珠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一维数组相关的知识,希望对你有一定的参考价值。

1、概念:

  • 在Java程序中记录多个类型相同的数据内容时,则声明一个一维数组,一维数组本质就是在内存空间中申请一段连续的存储单元。
  • 数组是相同数据类型的多个元素的容器,元素按照线性顺序排列,在Java语言中体现为一种引用数据类型。

2、一维数组的声明方式

  • 数据类型 [] 数组名称 = new 数据类型 [数组长度];

  • 调用数组的length属性可以获取数组的长度;

  • 可以通过下标的方式访问数组中的每一个元素。需要注意的是:数组的下标从0开始,对于长度为n的数组,下标的范围是0 ~ n-1。

    ![01一维数组的基本概念](D:\\Lagou\\课程资料\\模块一Java编程基础\\模块一 Java编程基础\\05任务五 数组以及应用\\02_图片\\01一维数组的基本概念.png)

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高薪训练营

以上是关于一维数组的主要内容,如果未能解决你的问题,请参考以下文章

php 多个 一维数组 去重 组成新数组

dev c++,二维数组的第一维赋值出错?

C语言数组知识点(一维 二维数组,传参)

Java定义一个一维数组,并给每个元素赋值为数组下标的值,并显示

ZZNUOJ_C语言1119:一维数组排序(完整代码)

一维数组