java数组
2021/11/6 17:09:45
本文主要是介绍java数组,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
java数组
概述
- 数组本身是 引用数据类型 而数组中的元素可以是 任何数据类型 包括基本数据类型和引用数据类型
- 创建数组对象会在内存中开辟一整块 连续的空间 而数组名中引用的是这块连续空间的首地址 。
- 数组 的 长度一旦确定 就不能修改 。
- 可以直接通过下标 或索引 的方式调用指定位置的元素 速度很快 。
- 数组的分类:
按照维度:一维数组 、 二维数组 、 三维数组 。
按照元素的数据类型分:基本数据类型元素的数组 、 引用数据类型元素的数组, 即对象数组。
使用
-
声明方式
Java 中声明数组时不能指定其长度 (数 组中元素的), 例如: int a[5 ]; // 非法
-
初始化
一维 //1.1 静态初始化:数组的初始化和数组元素的赋值操作同时进行 int ids[] = new int[]{1001,1002,1003,1004}; //1.2动态初始化:数组的初始化和数组元素的赋值操作分开进行 String[] names = new String[5]; names[0]="钱学森" names[1]="邓稼先" names[2]="袁隆平" //错误的写法: //int[] arr1 = new int[]; //int[5] arr2 = new int[5]; //int[] arr3 = new int[3]{1,2,3}; //也是正确的写法: int[] arr4 = {1,2,3,4,5};//类型推断 二维同理 总结,静态初始化直接赋值,不写数组大小。动态初始化需指定数组的形状(大小)
注意默认初始化值:
数组本身是引用类型,所有在二维数组中,第二维的元素默认为null指针
-
内存结构
属于概念理解,一维举例string那边有点瑕疵。
一维:
二维:
一维数组访问简单,通过下标就可以,数组名就是数组开始的地址
二维数组的访问需要注意:
package com.atguigu.java; /* 规定:二维数组分为外层数组的元素,内层数组的元素: int[][] arr = new int[4][3]; 外层元素:arr[0],arr[1]等 内层元素:arr[0][0],arr[1][2]等 数组元素的默认初始化值 : 针对于初始化方式一:比如:int[][] arr = new int[4][3]; 外层元素的初始化值为:地址值 内层元素的初始化值为:与一维数组初始化情况相同,为对应元素的默认初始化值 针对于初始化方式二:比如:int[][] arr = new int[4][]; 外层元素的初始化值为:null 内层元素的初始化值为:不能调用,否则报错。 */ public class ArrayTest3 { public static void main(String[] args) { int[][] arr = new int[4][3]; System.out.println(arr[0]);//[I@15db9742 System.out.println(arr[0][0]);//0 // System.out.println(arr);//[[I@6d06d69c float[][] arr1 = new float[4][3]; System.out.println(arr1[0]);//地址值 System.out.println(arr1[0][0]);//0.0 String[][] arr2 = new String[4][2]; System.out.println(arr2[1]);//地址值 System.out.println(arr2[1][1]);//null double[][] arr3 = new double[4][]; System.out.println(arr3[1]);//null // System.out.println(arr3[1][0]);//报错 } }
-
数组中常用的算法
排序(待总结)
-
Arrays 工具类的使用
java.util.Arrays 类即为操作数组的工具类 包含了用来操作数组 (比如排序和搜索) 的各种方法
- 数组常见异常
public class ArrayExceptionTest { public static void main(String[] args) { //1. 数组角标越界的异常:ArrayIndexOutOfBoundsExcetion int[] arr = new int[]{1,2,3,4,5}; // for(int i = 0;i <= arr.length;i++){ // System.out.println(arr[i]); // } // System.out.println(arr[-2]); //2.空指针异常:NullPointerException:通过空指针去找值 //情况一: // int[] arr1 = new int[]{1,2,3}; // arr1 = null; // System.out.println(arr1[0]); //情况二: // int[][] arr2 = new int[4][]; // System.out.println(arr2[0][0]); //情况三: String[] arr3 = new String[]{"AA","BB","CC"}; arr3[0] = null; System.out.println(arr3[0].toString()); } }
这篇关于java数组的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-30java最新版本是什么,有什么特性?-icode9专业技术文章分享
- 2024-11-30[开源]27.8K star!这款 Postman 替代工具太火了!
- 2024-11-30Gzip 压缩入门教程:轻松掌握文件压缩技巧
- 2024-11-29开源工具的魅力:让文档管理更“聪明”
- 2024-11-29Release-it开发入门教程
- 2024-11-29Rollup 插件入门教程:轻松掌握模块打包
- 2024-11-29从零到一,产品经理如何玩转项目管理和团队协作
- 2024-11-29如何通过精益生产管理工具帮助项目团队实现精准进度控制?
- 2024-11-29低代码应用开发课程:新手入门与基础教程
- 2024-11-29入门指南:全栈低代码开发课程