数组(四)

88 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第18天,点击查看活动详情

二维数组的内存存在形式

  • 以动态初始化的第一种方式为例,int arr[][] = new int[2][3];

说明:

首先在栈内存中声明了一个二维数组类型的变量 arr,在堆内存中为其开辟了一个大小为 2 的地址空间,里面分别存储着一维数组 arr[0]、arr[1] 的地址;

同时在堆内存中另外开辟了两个新的大小为 3 的内存空间,空间的地址就是 arr[0]、arr[1] 的内存地址,内存里面存储着一维数组中的元素。

注意:如果是以动态初始化(列数不确定)的方式创建二维数组,例如:

int[][] arr = new int[3][]; 则此时所有的一维数组都没有开辟内存空间,它们的地址都为null;

二维数组使用细节和注意事项

(1)一维数组的声明方式有: int[] x 或者 int x[] ; (2)二维数组的声明方式有: int[][] y 或者 int[] y[] 或者 int y[][] ; (3)二维数组实际上是由多个一维数组组成的,它的各个一维数组的长度可以相同,也可以不相同。

比如: map[][] 是 一个二维数组, int[][] map = {{1,2},{3,4,5}} ;其中,map[0] 是一个含有两个元素的一维数组 ,map[1] 是一个含有三个元素的一维数组,因此, map[][] 也称为 “列数不等的二维数组”。

数组元素的增删:

– push():在数组的结尾添加一个或多个元素,返回新数组的长度;

– pop():移除数组最后一个元素,返回移除的元素;

– unshift():在数组的开头添加一个或多个元素,返回新数组的长度;

– shift():删除数组第一个元素,并返回删除的元素;

排序函数:

  • reverse(),将数组中元素的顺序进行翻转。 改变原数组
  • sort(),对字符串进行排序(默认是按照表码排序),字母按顺序排序(大写字母均比小写字母小)。一般用来排姓名    返回新数组