我曾经参加过几次编程比赛,但是当时用的是c语言,现在学习了java,打算专攻java组,故以此整理。
数组无论在哪里都必不可少。
一.数组的拷贝:
使用Arrays类的copyOf方法:
1.将一个数组中的所有值拷贝到另一个里面:
int[] copiedLuckyNumber=Arrays.copyOf(luckyNumbers,luckyNumbers.length);
2.数组的扩容:
luckyNumbers=Arrays.copyOf(luckyNumbers,2*luckyNumbers.length);
如果数组元素是数值型的,那么多余元素将被赋值为0,如果数组元素是布尔型的,则将赋值为false,相反如果长度小于原始数组,只拷贝最前面的数据元素。
有了这方法就不用写个循环就能得到原函数了。
3.数组的截取:
luckyNumbers=Arrays.copyOfRange(luckyNumbers,int start,int end);
截取数组中的一段,start:起始下标(包含这个值)end:(不包含这个值)如果end超过数组的size多余的位置为0或者false
二.数组排序:
最重要的是数组里面的排序(终于可以不用写快速排序了)
Arrays.sort(yourArrays);
这个sort方法使用了优化的快速排序,效率比较高。
排序后数组中的值会按照从小到大。
三.数组的查找
数组中自带了二分搜索的方法
static int binarySearch(type[] a,type v); static int binarySearch(type[] a,int start,int end,type v);
参数:a 类型为基本类型
start:起始下标(包含这个值)
end:(不包含这个值)
v 同a的数据元素类型相同的值
四.不规则数组(略微不那么重要)
比如:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
先分配行:
int[][] odds=new int[MAX+1][]
分配这些行:
for(int n=0;n<MAX;n++) odds[n]=new int[n+1];
五.数组的转换
1.int型数组转为字符串
1 int[] arr = new int[]{1,2,3}; 2 String s = Arrays.toString(arr);
整理自:核心技术卷一