您的位置:首页 > 编程语言 > Java开发

java数组及常用算法

2012-02-10 14:52 211 查看
转自: http://hi.baidu.com/fangyuan28/blog/item/3d59b53855053df8b211c733.html
java数组及常用算法:

1. 数组:一组相同数据类型的存储结构。

2. 声明:数据类型[] 数组变量名;

3. 创建:数组变量名 = new 数据类型[长度];

也可以把数据的声明和创建合为一步:数据类型[] 数组变量名 = new 数据类型[长度];

数组一旦创建,它的长度无法改变。

4. 数组的默认初始化:数组在创建时,会使用对应类型的默认初始化值对数组中的所有元素进行初始化。

5. 数组中元素的访问:使用下标(索引)。语法:数组变量名[下标值];

数组的下标是从0开始的,最后一个元素的下标就是:数组的长度-1。

6. Java语言为数组提供了一个length属性,用来访问数组的长度。

int length = arr == null ? 0 : arr.length;

7. 显式初始化:数组变量名[下标值] = 值;

8. 静态初始化:数组的声明、创建和赋值合为一步:

数据类型[] 数组变量名 = new 数据类型[]{值1,值2,..,值n};

数据类型[] 数组变量名 = {值1,值2,..,值n};

9. jdk1.5以上版本新增功能:增强的for循环:for-each

用途:用来遍历数组或集合。

语法:for(数据类型 临时变量名 : 数组变量名){ }

不足之处:没有数组的下标值。只能显示值,不能修改。也可能会出现NullPointerException。

10. 命令行参数:程序的入口方法main需要一个String类型的数组,这个数组的值是通过java.exe执行这个程序时添加在命令行后面。

Eclipse工具怎么给它传命令行参数。

11. 可变参数,用来代表0到任意个的同类型参数。

语法:数据类型... 参数名

实质:可变参数其实就是一个数组。

使用注意:可变参数必须是方法的最后一个参数。

12. 常用算法:

1)递归:方法内部出现有条件的自我调用。要有递归出口,要改条件,逐步向出口逼近。

2)排序:冒泡bubbleSort --> 每轮两两比较,把最大值放置在最右。

选择selectSort --> 每轮选中最小值,(打擂台)。

插入insertSort --> 按顺序把每个元素放置到前面元素之间。(玩扑克牌时抓牌)

快速quickSort --> 找轴心,分部分排序。

3)查找:顺序sequenceSearch --> 挨个询问,直接找到为止。

二分binarySearch --> 对排好序的数组进行折半查找。

13. 数组的操作工具类:java.util.Arrays类,这个类提供的全是静态方法

1) public static String toString(int[] arr): 返回指定数组内容的字符串表示形式

2) public static void sort(int[] arr):对指定的数组按数字升序进行排序,采用的是最速排序。

3) public static int binarySearch(int[] arr, int key):从指定数组中查找指定key出现的索引,若未找到,返回小于0的值。

4) public static <T> List<T> asList(T... a): 把数组转换成List

示例:

Object[] objs = new Object[10];

List<Object> list = Arrays.asList(objs);

5) public static void fill(int[] a, int val): 将指定的 int 值分配给指定 int 型数组的每个元素。

14. 二维数组:数组的数组。二维数组的第一维中的元素也是数组。

声明:数据类型[][] 数组变量名;

创建:数组变量名 = new 数据类型[第一维长度][第二维长度];

数组变量名 = new 数据类型[第一维长度][];

静态初始化:

数据类型[][] 数组变量名 = { {值1,值2,值3}, {值1,值2}, {值1,值2,值3}};

访问二维数组中的元素:

第一维中的元素:数组变量名[下标];

第二维中的元素:数组变量名[下标][下标];

二维数组的长度:数组变量名.length; -->第一维的长度

数组变量名[下标].length; -->第二维的长度

会遍历二维数组:for,for-each

15. 数据的复制:System类提供一个静态方法arraycopy(源数组,起始下标,目标数组,起始下标,要复制的元素个数); 它是一个本地方法,效率比较高。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: