java数组的概念和应用---一维数组详细解析

java数组的概念和应用-一维数组详细解析

用于存储相同数据类型的内容,在内存中申请连续的存储单元

一维数组

一维数组的基本概念

  1. 当需要在Java程序中记录多个类型相同的数据内容时,则声明一个一维数 组即可,一维数组本质上就是在内存空间中申请一段连续的存储单元。

  2. 数组是相同数据类型的多个元素的容器,元素按线性顺序排列,在Java语 言中体现为一种引用数据类型。

  3. 数组和变量图示区别

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Xvqn69WL-1625381523627)(C:\Users\Administrator\Desktop\拉钩教育Java笔记\images\数组及应用\01一维数组的基本概念.png)]

一维数组的声明方式

  1. 语法结构

    数据类型[] 数组名称 = new 数据类型[数组的长度];(动态方式)

    数据类型 数组名称[] = new 数据类型[数组的长度];(不推荐)

    注意事项

    以上两种方式从结果上来说是一样的,第二种声明方式和变量的声明区分,进而提高代码的可读性

    数组的长度可以是一个整形变量 如果是变量时 变量的值 > 0 ;

  2. 数组的访问

    可以通过下标的方式访问数组中的每一个元素。

  3. 注意事项

    1. 数组的 下标从0开始,对于长度为n的数组,下标的范围是0~n-1
    2. 在数组遍历超过下标的范围时,会出错–》java.lang.ArrayIndexOutOfBoundsException 意思是 数组下标越界异常
  4. 一维数组的内存结构图在这里插入图片描述

  5. 代码演示

    /*
    	编程使用一维数组
    */
    public class ArrayTest{
    	public static void main(String[] args){
    		// 1.声明一个长度为5 数据类型为int 的一维数组
    		// int arr[] = new int[5]; 这两种方式的从结果上说是一样 不推荐使用
    		int[] arr = new int[5];
    		
    		// 2.打印一维数组的长度以及每一个元素的值
    		System.out.println("数组的长度是:" + arr.length);
    		for(int i = 0; i < arr.length; i++){
    			System.out.println(arr[i]);
    		}
    	}
    }
    

一维数组的初始化方式

  1. 基本类型的数组(数据元素为基本类型)创建后,其元素的初始值:

    数据类型默认值
    byte、 short、char、int、long0
    float、double0.0
    booleanfalse
    String(引用数据类型)null
  2. 数组声明的同时进行初始化(静态方式)

    语法结构

    数据类型[] 数组名称 = {初始值1, 初始值2, ...};简化写法
    数据类型[] 数组名称 = new 数据类型[] {初始值1, 初始值2, ...}; 原始写法
    
  3. 代码演示

    /*
    	编程使用静态方式的一维数组
    */
    public class ArrayInitStaticTest{
    	public static void main(String[] args){
    		// 1.声明数组的通知并对数组中的元素初始化 静态方式
    		int[] arr = {1, 2, 3, 4, 5,};
    		// 
    		System.out.println("数组的长度是:" + arr.length);
    		for(int i = 0; i < arr.length; i++){
    			System.out.println(arr[i]);
    		}
    	}
    }
    

一维数组的增删改查

  1. 一维数组的增删改查的声明和赋值
    图示表示在这里插入图片描述

  2. 一维数组的增删改查的插入

    图示表示在这里插入图片描述

  3. 一维数组的增删改查的删除
    图示表示在这里插入图片描述

  4. 一维数组的增删改查的改查
    图示表示在这里插入图片描述

  5. 代码演示

    /*
        编程实现一维数组的增删改查操作
    */
    public class ArrayOpTest {
    	
    	public static void main(String[] args) {
    		
    		// 1.声明一个长度为5元素类型为int类型的一维数组
    		int[] arr = new int[5];
    		// 打印数组中所有元素的数值
    		System.out.print("数组中的元素有:");
    		for(int i = 0; i < arr.length; i++) {
    			System.out.print(arr[i] + " "); // 全是默认值0
    		}
    		System.out.println();
    		
    		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-1; i++) {
    			arr[i] = (i+1)*11;
    		}
    		// 打印数组中所有元素的数值
    		System.out.print("数组中的元素有:");
    		for(int i = 0; i < arr.length; i++) {
    			System.out.print(arr[i] + " "); // 11 22 33 44 0
    		}
    		System.out.println();
    		
    		System.out.println("-------------------------------------------------");
    		// 3.将数据55插入到下标为0的位置,原有元素向后移动
    		for(int i = arr.length-1; i > 0; i--) {
    			arr[i] = arr[i-1];
    		}
    		arr[0] = 55;
    		// 打印数组中所有元素的数值
    		System.out.print("数组中的元素有:");
    		for(int i = 0; i < arr.length; i++) {
    			System.out.print(arr[i] + " "); // 55 11 22 33 44
    		}
    		System.out.println();
    		
    		System.out.println("-------------------------------------------------");
    		// 4.将数据55从数组中删除,删除方式为后续元素向前移动,最后一个位置置为0
    		/*
    		arr[0] = arr[1];
    		arr[1] = arr[2];
    		arr[2] = arr[3];
    		arr[3] = arr[4];
    		*/
    		for(int i = 0; i < arr.length-1; i++) {
    			arr[i] = arr[i+1];
    		}
    		arr[4] = 0;
    		// 打印数组中所有元素的数值
    		System.out.print("数组中的元素有:");
    		for(int i = 0; i < arr.length; i++) {
    			System.out.print(arr[i] + " "); // 11 22 33 44 0
    		}
    		System.out.println();
    		
    		System.out.println("-------------------------------------------------");
    		// 5.查找数组中是否有元素22,若有则修改为220
    		for(int i = 0; i < arr.length; i++) {
    			if(22 == arr[i]) {
    				arr[i] = 220;
    			}
    		}
    		// 打印数组中所有元素的数值
    		System.out.print("数组中的元素有:");
    		for(int i = 0; i < arr.length; i++) {
    			System.out.print(arr[i] + " "); // 11 220 33 44 0
    		}
    		System.out.println();
    	}
    }
    

一维数组的优缺点

  1. 可以直接通过下标(或索引)的方式访问指定位置的元素,速度很快
  2. 数组要求所有元素的类型相同
  3. 数组要求内存空间连续,并且长度一旦确定就不能修改
  4. 增加和删除元素时可能移动大量元素,效率低

一维数组之间的元素拷贝

  1. 代码演示

    /*
    	编程实现数组之间的拷贝
    */
    public class ArrayCopyTest{
    	public static void main(String[] args){
    		// 1.声明一个初始值为 11 22 33 44 55 的数值
    		int[] arr = {11, 22, 33, 44, 55};
    		// 2.打印数组中的所有元素
    		System.out.println("第一组数组中的元素有:");
    		for(int i = 0; i < arr.length; i++){
    			System.out.print(arr[i] + " ");
    		}
    		System.out.println();
    		
    		System.out.println("--------------------------");
    		// 3.声明一个长度为3 的整型一维数组
    		int[] arrs = new int[3];
    		// 4.打印数组中的所有元素
    		System.out.println("第二组数组中的元素有:");
    		for(int i = 0; i < arrs.length; i++){
    			System.out.print(arrs[i] + " ");
    		}
    		System.out.println();
    		
    		System.out.println("--------------------------");
    		// 5.将第一个数组中的中间3个元素赋值到第二个元素中
    		// 使用java 给定的数组拷贝功能
    		System.arraycopy(arr, 1, arrs, 0, 3);	// 将数组arr中下标1开始的三个元素 拷贝到arrs中下标为0
    		System.out.println("第二组数组中的元素有:");
    		for(int i = 0; i < arrs.length; i++){
    			System.out.print(arrs[i] + " ");
    		}
    	}
    
  2. 拷贝原理图示
    在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白迷上java

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值