A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

ygtrece

初级黑马

  • 黑马币:33

  • 帖子:9

  • 精华:0

© ygtrece 初级黑马   /  2019-3-7 23:40  /  724 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

数组作为存储数据长度固定的容器,在我们解决一些问题时起到了很大的作用。因此,我认为编程初学者理应掌握对数组的一些基本操作和理解。本帖我简单的写了一个关键点,概括为:三张内存图,两个异常,一个实例。
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}
实现思想:数组最远端的元素互换位置。
定义两个变量,保存数组的最小索引和最大索引
两个索引上的元素交换位置
最小索引 ++,最大索引--,再次交换位置

最小索引超过了最大索引,数组反转操作结束
除了数组反转,我们还应该掌握数据的其他基本实例操作,像数组的遍历,取极值,排序,拆分,合并等等。


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马