标签:
数组是应用最广泛的数据存储结构。它被植入到大部分编程语言中。
Java中数组的基础知识
创建数组
在Java中把它们当作对象来对待,因此在创建数组是必须使用new操作符:
int[] intArray; //defines a reference to an array ingArray = new int[100]; //creates the array, and //sets int Array to refer to it //或使用等价的单语句声明的方法: int[] int array = new int[100];
数组是一个对象,所以它的名字(前面程序中intArray)是数组的一个引用;它并不是数组本身。数组存储在内存中的其他地址中,而intArray仅仅保存着这个地址。数组有一个length字段,通过它可以得知当前数组大小(数据项的个数);
int arrayLength = intArray.length; //find array size
一旦创建数组,大小便不可改变。
访问数组数据项
数组数据项通过方括号中的下标来访问。
temp = intArray[3]; //get contents of fourth element of array intArray[7] = 66; //intsert 66 into the eighth cell
初始化
当创建整型数组之后,不另行指定那么数组会自动初始化为空。
除非将特定的值赋给数组的数据项,否则它们一直是特殊的null对象。
使用下面的语法可以初始化一个基本类型的数组:
int[] intArray = {1,3,45,23,123,122,56};
数组的大小是由数据列表中的数据项决定的;大小固定不可改变;
有序数组的Java代码
下面讨论一下有序数组的Java代码,它使用OrdArray类来封装数组和它的算法。类的核心是find()方法,通脱二分查找类定位一个特定的数据项。
小结
Java中的数组是对象,由new操作符创建;
无序数组可以提供快速的插入,但查找和删除较慢;
将数组封装到类中可以保护数组不随意更改;
类的接口类用户可以访问的方法(有时还有字段)组成;
类的接口被设计成使类用户操作更加简单;
有序数组可以使用二分查找;
以B为底A的对数(大概)是在结果小雨1之前用B除A的次数;
线性查找需要的时间与数组中数据项的个数成正比;
二分查找需要的时间与数组中数据项的个数的对数成正比;
大O表示法为比较算法的速度提供了一种方便的方法。
O(1)级时间的算法是最好的,O(logN)次之,O(N)为一般,O(N2)最差;
36页
标签:
原文地址:http://my.oschina.net/u/1431757/blog/520924