合并两个数组为有序数组:
思路:
先合并再排序
数组的合并:(利用 System.arraycopy() 方法实现数组复制)
1. System中提供了一个native静态方法arraycopy(),可以使用这个方法来实现数组复制
2. public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
代码解释: Object src : 原数组
int srcPos : 从原数据的起始位置开始
Object dest : 目标数组
int destPos : 目标数组的开始起始位置
int length : 要copy的数组的长度
3. 例如:我们有一个数组数据 byte[] srcBytes = new byte[] {2,4,0,0,0,0,0,10,15,50}; // 源数组
byte[] destBytes = new byte[5]; // 目标数组
我们使用System.arraycopy进行转换(copy)
System.arrayCopy(srcBytes,0,destBytes ,0,5)
上面这段代码就是 : 创建一个一维空数组,数组的总长度为 12位,然后将srcBytes源数组中 从0位 到 第5位之间的数值 copy 到 destBytes目标数组中,在目标数组的第0位开始放置.
那么这行代码的运行效果应该是 2,4,0,0,0,
数组的排序:(Java中Array.sort()的用法)
1. Arrays.sort(int[] a)
这种形式是对一个数组的所有元素进行排序,并且是按从小到大的顺序。
2. Arrays.sort(int[] a, int fromIndex, int toIndex)
这种形式是对数组部分排序,也就是对数组a的下标从fromIndex到toIndex-1的元素排序,注意:下标为toIndex的元素不参与排序哦!