黑马程序员_数组笔记

------- android培训java培训、期待与您交流! -----------

三种数组定义方式。


方式1(推荐,更能表明数组类型)

type[] 变量名 = new type[数组中元素的个数];

int[] a = new int[10];

数组名,也即引用a,指向数组元素的首地址。

方式2

type变量名[] = new type[数组中元素的个数];

int a[] = new int[10];

方式定义时直接初始化

type[] 变量名 = new type[]{逗号分隔的初始化值};

其中红色部分可省略,所以又有两种:

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

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

其中int[] a = new int[]{1,2,3,4};的第二个方括号中不能加上数组长度,因为元素个数是由后面花括号的内容决定的。

定义二维数组

基本的定义方式有两种形式,如:

type[][] i = new type[2][3];(推荐)

type i[][] = new type[2][3];

 

数组相关异常


1、ArrayIndexOutOfBoundsException

int[] arr = new int[3];

System.out.println(arr[3]);

当访问到数组中不存在的角标时,就会发生该异常。

2NullPointerException

arr = null;

System.out.println(arr[0]);//NullPointerException

当引用型变量没有任何实体指向时,还在用其操作实体。就会发生该异常。 

 

 

一维数组在内存图


 

 

二维数组在内存图


 

数组相关算法


1、冒泡排序

冒泡排序原理:前一个与后一个进行比较,一直比较到末尾,一个轮回选着出最大或最小值。下图中写出了冒泡排序的两种方式。

   

2、选着排序

选着排序原理:第一个分别与其他数进行比较,若从大到小的排序,碰到比它大的就与它自身交换位置,若从小到大排序,碰到比它自身小的就交换位置。下图是选择排序示意图

 

3、二分查找

二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。下图是原理图:

 

---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a><a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----------------------
详细请查看:<a href="http://www.itheima.com" target="blank">www.itheima.com</a>

 


---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值