JAVA基础-数组

mac2024-11-23  65

数组也是一种数据类型

数组是一个固定长度的,包含了相同类型数据的容器。

声明数组: 在声明数组变量时,需要指出数据类型和数组变量的名字。 下面声明了int数组arr:

int[] arr; //int a[];也是可以的

创建数组: 在创建数组的时候,要指明数组的长度 a=new int[5]

访问数组: 创建数组时候 int[]中的数组代表长度, 而访问数组时,[] 中的数组代表数组的角标(index)(基0) .length方法用于访问一个数组的角标的范围 数组访问角标范围是0到长度-1,超过这个范围,就会编译错误

引用的概念: 和基本数据类型不同 int c = 50; 是将c赋值50 而int []a=int[1];只是创建了一个数组,并让a指向数组

初始化数组: 分配空间与赋值分步进行:

int[] a = new int[2]; //分配了长度是2的数组,但是没有赋值 //没有赋值,那么就会使用默认值 int类型默认值是0 a[0] = 100; //进行赋值 a[1] = 101;

分配空间与赋值同时进行

int[] a = new int[]{100,102,444,836,3236};

二维数组 这是一个一维数组:

int[] a = new int[]{1,2,3,4,5,6};

里面的每一个元素都是int类型的。

这是一个二维数组:

int[][] b = new int[]{ {1,2,3}, {4,5,6}, {7,8,9} };

里面的元素都是数组,所以说二维数组可以看作存放数组的数组。

不规则数组 又叫锯齿数组是每行长度不一定的二维数组,下面给出一种初始化方法

int[][] ragged_arrays = new int[5][];//只定义了5个数组,每个数组的长度未给出 for(int i=0;i<ragged_arrays.length;i++){ ragged_arrays[i] = new int [i+1];//每个数组长度一次递增 }

Arrays类 Arrays是一个关于数组的工具类,具体详情可以在java说明书中查询,这里介绍集中常用方法,方便进行 排序,查找,复制填充等功能。

copyOfRange(int[] original, int from, int to) 用于进行数组复制

int a[] = new int[] { 18, 62, 68, 82, 65, 9 }; int[] b = Arrays.copyOfRange(a, 0, 3); //复制了 {18, 62, 68}

toString(int[] original); 把数组转化为字符串,方便观察数组内容

int a[] = new int[] { 18, 62, 68, 82, 65, 9 }; String content = Arrays.toString(a); System.out.println(content); //输出显示:{ 18, 62, 68, 82, 65, 9 }

sort(int[] original); 对数组进行排序(从小到大)

int a[] = new int[] { 18, 62, 68, 82, 65, 9 }; Arrays.sort(a); //a={ 9,18, 62, 65, 68, 82 }

binarySearch(int[] original , int ); 对某元素的位置进行查询,使用binarySearch必须先对数组进行排序 有多个相同的元素,查找结果是不确定的

int a[] = new int[] { 18, 62, 68, 82, 65, 9 }; Arrays.sort(a); //使用binarySearch之前,必须先使用sort进行排序 System.out.println(Arrays.binarySearch(a, 62));

equals(int[] a , int[] b); 比较两个数组是否相同,输出布尔值

int a[] = new int[] { 18, 62, 68, 82, 65, 9 }; int b[] = new int[] { 18, 62, 68, 82, 65, 8 }; System.out.println(Arrays.equals(a, b));

fill(int[] original , int) 用某元素填充数组

int[] a = new int [3] Arrays.fill(a, 5); System.out.println(Arrays.toString(a)); //{ 5, 5, 5 };
最新回复(0)