工具/原料
JDK、eclipse、android SDK、ADT
一、数组工具类Arrays的功能
1、数组的复制:
①Arrays.copyOf(数组,新的长度):将指定的数组,复制成指定长度的新数组。
②System.arraycopy(原数组,原数组起始位置,目标数组,目标数组起始位置,复制的数据个数):可以自身复制。
2、其他数组工具类Arrays的功能:
①String.toCharArray():将字符串转成字符数组。
②Arrays.sort(数组):对数组排序优化的快速排序算法,效率最高。
③Arrays.binarySearch(数组,目标值):调用二分法查找,在有序数组中查④找一个值所在位置,如果找不到,会得到负数。
⑤Arrays.toString(数组):将数组中的值一个一个的连接起来,连接成字符串,字符串格式:"[值1,值2,值3]"。
⑥Arrays.fill(数组,值):在指定数组每个位置,都放入指定的值。
二、数组练习
1、猜字母(已经产生了5个不重复的大写字母,请猜这5个字母):
思路:先随机生成字母,然后循环跟用户输入的值比较,如果猜对跳出循环,如果猜错重新循环继续猜。
①随机字母可通过在所有字母中取随机字母把没有取出的字母随机取出,再跟前5个字母交换位置,或者新建一个长度为原字母数组相同都为26的boolean数组和一个长度为6的整型数组,插入到新整型数组前先判断booean数组中相应位置是false或true,循环判断,最终得到随机且不重复的字符数组。
②把用户输入的值变成字符数组,2个数组通过循环依次比较大小,如果有相同的数值,就再判断2个数值所在位置是否相同,如果相同a变量计数加1,如果不同b变量计数加1,最后组合字符串得到“5A0B”,就可以判断用户所输入的对不对了。
2、插入排序:
思路:从下标0开始向后依次拿后一位数跟前一位数做比较,直到把最小数插入到最前边。
3、冒泡排序:
思路:从最后一位开始向左依次拿后一位数跟前一位数做比较,然后把最小数往前挪,一直到从做到右都是自小至大的排列顺序,如果在向左比较过程中都是前一位大于后一位则不用再继续比较跳出循环即可。
4、二分法查找(折半查找):
在“有序”数组中,查找一个值所在的位置。
三、数组作业
选择排序:
例如:[2,3,4,7,6,9,5],循环数组从i往后,选择最小值所在的位置min,然后,i和min的值交换。
注意事项
冒泡排序和二分法查找其实完全是应付面试,真正程序猿根本不会去用这种排序方法,直接用Arrays.sort()和Arrays.binarySearch()就可以做到,效率方面而且还是优化过的。