首页 > 编程知识 正文

java数组转arraylist,array数组什么意思

时间:2023-05-05 09:41:17 阅读:128645 作者:853

“数组”(Array )是一组按一定顺序排列了多个相同类型数据的集合,使用一个名称命名,并按编号统一管理这些数据。

数组相关的概念:

数组名称元素的索引、下标和索引数组长度:元素个数数组的特点:

数组是按顺序排列属于引用数据类型的数组的变量。 即使是基本的数据类型,在通过引用数据类型创建数组对象时,也无法修改数组的元素,除非内存中确定了整个连续空间数组的长度。数组的分类:

分维)一维数组、二维数组、…、n维数组分数组元素类型)基本数据类型元素数组、引用数据类型元素的数组的一维数组声明和初始化

//正确的方式: int num; 声明num=10初始化int id=1001声明int[] ids初始化//声明//1.1静态初始化:数组初始化和数组元素赋值操作同时执行ids=new int [ ] { 1001,1002,1003,1110 //1.2动态初始化:将数组初始化与数组元素赋值操作分开String[] names=new String[5]; int [ ] arr4={ 1,2,3,4,5 }; //类型估计错误的方法:

//int[] arr1=new int[]; //int[5] arr2=new int[5]; //int [ ] arr3=new int [3] { 1,2,3 };一维数组元素的引用:在拐角目标上调用。

//数组的角点标记(或索引从0开始,以数组长度-1结束。

names[0]='ttdbd '; names[1]='虚拟蛋挞'; names[2]='wwdjw '; names[3]='qpdtd '; names[4]='标致前辈'; //Charat(0)数组的属性:length

system.out.println (names.length ); //5 system.out.println (ids.length; 说明:

数组初始化后,它将确定长度。 arr.length

一旦确定了数组的长度,就无法修改。

4 .一维数组遍历

for(intI=0; i names.length; I ) {

system.out.println(Names[I];

}

5 .一维数组元素的默认初始化值

数组元素为整数: 0

数组元素是浮点型。 0.0数组元素为char型。 0或'u0000 ','0'数组元素不是布尔型。 false数组元素是引用数据类型。 空6维数组的内存分析

二维阵列可以是参照数据类型阵列的元素,也可以是参照数据类型的一维阵列a的元素。 如果仍然是一维数组型,则将该数组a称为二维数组。二维数组的声明与初始化

正确的方法:

int [ ] arr=new int [ ] { 1,2,3 }; //一维数组//静态初始化int [ ] [ ] arr1=new int [ ] [ ] { 1,2,3 },{ 4,5 },{ 6,7,8 }; //动态初始化1 string [ ] [ ] arr2=new string [3] [2]; //动态初始化2String[][] arr3=new String[3][]; //也是正确的写法。 int [ ] arr4[ ]=new int [ ] { 1,2,3 },{ 4,5,9,10 },{ 6,7,8 } }; int [ ] arr5[ ]={ 1,2,3 }、{ 4,5 }、{ 6,7,8 }; //类型估计错误的方法:

//字符串[ ] [ ] arr4=new string [ ] [4]; //string [4] [3] arr5=new string [ ] [ ]; //int [ ] [ ] arr6=new int [4] [3] { { 1,2,3 },{ 4,5 },{ 6,7,8 };如何调用二维数组元素:

system.out.println(arr1[0][1]; //2 system.out.println (arr2[1] [1]; //nullarr3[1]=new String[4]; system.out.println(arr3[1][0]; system.out.println(arr3[0]; //二维数组的属性

system.out.println(arr4.length; //3 system.out.println (arr4[0].length ); //3 system.out.println (arr4[1].length ); //4 遍历二维数组元素

for(intI=0; i arr4.length; I ) for(intj=0; j arr4[i].length; Jj

){System.out.print(arr4[i][j] + " ");}System.out.println();}

二维数组元素的默认初始化值

规定:二维数组分为外层数组的元素,内层数组的元素
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
内层元素的初始化值为:不能调用,否则报错。

二维数组的内存结构

数组常见用法

1.数组的创建与元素赋值
杨辉三角(二维数组)、回形数(二维数组)、6个数,1-30之间随机生成且不重复。
2.针对于数值型的数组
最大值、最小值、总和、平均数等
3.数组的赋值与复制

int[] array1,array2;array1 = new int[]{1,2,3,4};

3.1 赋值:

array2 = array1;

如何理解:将array1保存的数组的地址值赋给了array2,使得array1和array2共同指向堆空间中的同一个数组实体。

3.2 复制:

array2 = new int[array1.length];for(int i = 0;i < array2.length;i++){array2[i] = array1[i];}


如何理解:我们通过new的方式,给array2在堆空间中新开辟了数组的空间。将array1数组中的元素值一个一个的赋值到array2数组中。
4.数组元素的反转

//方法一://for(int i = 0;i < arr.length / 2;i++){//String temp = arr[i];//arr[i] = arr[arr.length - i -1];//arr[arr.length - i -1] = temp;//} //方法二://for(int i = 0,j = arr.length - 1;i < j;i++,j--){//String temp = arr[i];//arr[i] = arr[j];//arr[j] = temp;//}

5.数组中指定元素的查找:搜索、检索
5.1 线性查找:
实现思路:通过遍历的方式,一个一个的数据进行比较、查找。
适用性:具有普遍适用性。
5.2 二分法查找:
实现思路:每次比较中间值,折半的方式检索。
适用性:(前提:数组必须有序)

6.数组的排序算法

理解:
1)衡量排序算法的优劣:
时间复杂度、空间复杂度、稳定性

2)排序的分类:内部排序 与 外部排序(需要借助于磁盘)

3)不同排序算法的时间复杂度


4)手写冒泡排序

int[] arr = new int[]{43,32,76,-98,0,64,33,-21,32,99};//冒泡排序for(int i = 0;i < arr.length - 1;i++){for(int j = 0;j < arr.length - 1 - i;j++){if(arr[j] > arr[j + 1]){int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}} 数组的常见异常

1.数组角标越界异常:ArrayIndexOutOfBoundsException

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]);//System.out.println("hello");

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());

小知识:一旦程序出现异常,未处理时,就终止执行。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。