数组作为存储数据长度固定的容器,在我们解决一些问题时起到了很大的作用。因此,我认为编程初学者理应掌握对数组的一些基本操作和理解。本帖我简单的写了一个关键点,概括为:三张内存图,两个异常,一个实例。 1)三张内存图 public static void main(String[] args) { int[] arr = new int[3]; System.out.println(arr); } 运行结果:[I@880ec60 结果为数组在内存中的地址,同样的,输出arr[1]就会输出arr保存在内存地址中数组中1索引上的元素
一个数组内存图 两个数组内存图 两个变量指向一个数组内存图 2)两个异常 ①数组越界异常(ArrayIndexOutOfBoundsException) 比如说我们创建数组 int[ ] arr = new int[3]; 数组的索引就是0,1,2,当我们访问不存在的索引时便会报出数组角标越界异常,需要注意。 ②数组空指针异常(NullPointerException) 比如说arr = null 这行代码,意味着变量arr将不会在保存数组的内存地址,也就不允许再操作数组了,因此运行的时候会抛出空指针异常。在开发中,数组的越界异常是不能出现的,一旦出现了,就必须要修改我们编写的代码。 3) 一个实例-数组反转 数组反转即数据元素颠倒位置,如原始数组为{10,15,6,100,89,25},反转后即为{25,89,100,6,15,10} 实现思想:数组最远端的元素互换位置。 定义两个变量,保存数组的最小索引和最大索引 两个索引上的元素交换位置 最小索引 ++,最大索引--,再次交换位置
最小索引超过了最大索引,数组反转操作结束 除了数组反转,我们还应该掌握数据的其他基本实例操作,像数组的遍历,取极值,排序,拆分,合并等等。
|