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(源数组,起始下标,目标数组,起始下标,要复制的元素个数); 它是一个本地方法,效率比较高。
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(源数组,起始下标,目标数组,起始下标,要复制的元素个数); 它是一个本地方法,效率比较高。
相关文章推荐
- 数组介绍及常用算法的 java 实现
- java面试题:数组的常用算法实现
- java常用算法之返回目标数字在有序数组中的位置(假设有序数组中不存在重复数字)
- Java:数组工具类Arrays类的常用方法的用法及代码
- 算法笔记_133:最大连续乘积子数组(Java)
- Java实例 Part4:数组及其常用操作
- #Java常用类库#(4)数组与集合类
- java常用算法之返回字符串中目标字符串的位置
- 【Core Java Volume 5】集合算法---查找数组、集合最大值的通用方法
- 常用算法题目总结一(数组篇)
- Java三大常用数组元素排序法,插入/选择/冒泡
- java_数组算法
- 数组(主要介绍关于数组的一些常用算法)
- 笔试面试算法经典--打印数组中相加和为给定值的二元组及三元组(Java)
- Java中对Array数组的常用操作
- 最近常用的一个算法(生成不重复的随机数组)
- Java Arrays类对数组的常用操作
- 第五章:数组及常用算法
- java使用BZip算法压缩解压缩文件、数据流、byte[]字节数组
- 数组常用函数归纳整理-java语言编写