10.
package com.qf.arraywork;
/*System.arraycopy(int[] src, int srcPos,
int[] dst, int dstPos, int length);*/
public class Demo10 {
public static void main(String[] args) {
}
public static void arraycopy(int[] src, int srcPos, int[] dst, int dstPos, int length){
/*循环length次,进行值的拷贝*/
for (int i = 0; i < length; i++) {
/*越界判断*/
if (dstPos + i >= dst.length){
break;
}
if(srcPos + i >= src.length){
break;
}
dst[dstPos + i ] = src[srcPos +i];
}
}
}
11.
package com.qf.arraywork;
/*模拟实现:copyOf(int[] array, int newLength)*/
public class Demo11 {
public static void main(String[] args) {
int[] a={1,24,4};
copyOf(a,3);
}
public static int[] copyOf(int[] array,int newLength){
/*实例化一个新的数组*/
int[] copy = new int[newLength];
for (int i = 0;i<newLength;i++){
if( i>= array.length){
break;
}
copy[i] = array[i];
}
return copy;
}
}
13.
import java.util.Arrays;
public class Demp13 {
public static void main(String[] args) {
int[] arr1={1,4,4};
int[] arr2={3,5,4};
}
public static int[] combine(int[] arr1, int[] arr2) {
// 1. 合并数组
int[] combine = Arrays.copyOf(arr1, arr1.length + arr2.length);
System.arraycopy(arr2, 0, combine, arr1.length, arr2.length);
//2. 排序
Arrays.sort(combine);
return combine;}
}
14.
import java.util.Arrays;
/*(难)已知方法 public static int[] delete(int[] arr, int ele)
的作用是删除数组中第一次出现的ele元素,并返回删除后的数组。
实现这个方法。*/
public class Demo14 {
public static void main(String[] args) {
}
public static int[] delete(int[] array, int element) {
// 1. 计算下标
int index = -1;
for (int i = 0; i < array.length; i++) {
if (array[i] == element) {
index = i;
break;
}
}
// 2. 判断不存在
if (index == -1) {
return array;
}
// 3. 用后面的元素覆盖前面的
System.arraycopy(array, index + 1, array, index, array.length - index - 1);
return Arrays.copyOf(array, array.length - 1);}
}
Java数组案例详解2
这篇博客展示了几个Java中处理数组的关键操作。包括使用`System.arraycopy`进行数组复制,模拟实现`Arrays.copyOf`创建指定长度的新数组,以及合并与排序两个数组的方法`combine`。此外,还提供了一个删除数组中首次出现特定元素的`delete`方法。
摘要由CSDN通过智能技术生成