如何将两个有序数组合并为一个有序数组,用函数做,一个循环搞定?
发布网友
发布时间:2022-05-20 23:33
我来回答
共5个回答
热心网友
时间:2023-10-09 04:27
这很简单:
代码如下(此处不考虑Object,假设为int[ ]):
public int[ ] getNewArrays(int[ ] one, int [] two){
int len=one.length;
int len2=two.length;
int len3=oneLength+twoLength; //得到两数组长度和;
int[] newArray=new int [len3]; //创建第三个数组,长度=两数组长度之和;
for(int i=0;i<len3;i++){
if(i<len){ //如果i<len,则赋值为one中的元素;
newArray[i]=one[i];
continue;
}
int t=i-len; // t 从0开始
newArray[i]=two[t]; //后面的元素 赋值为two中的元素;
} //对第三个数组一一赋值,值为前两个数组;
Arrays.sort(newArray); //对第三个数组排序;此处使用的是java自带的sort方法;
//也可使用冒泡排序,此处不演示;
return newArray;
}
完
热心网友
时间:2023-10-09 04:27
不需要用循环吧,数组有addAll()方法,直接合并。
如果考虑到新数组的排序,直接用Arrays.sort()方法就可以了。
热心网友
时间:2023-10-09 04:28
class test {
public static void main(String[] args) {
int[] arr1 = new int[] { 1, 2 };
int[] arr2 = new int[] { 5, 3, 4 };
int[] newArr = getNew(arr1, arr2);
printArr(newArr);
}
static int[] getNew(int[] arr1, int[] arr2) {
int len1 = arr1.length;
int len2 = arr2.length;
int len = arr1.length + arr2.length;
int[] newArr = new int[len];
int x = 0;
for(int i=0;i<newArr.length;i++) {
if(i<len1) {
newArr[i] = arr1[i];
} else {
newArr[i] = arr2[i - len1];
}
}
return newArr;
}
static void printArr(int[] arr) {
String str = "[";
for (int i = 0; i < arr.length; i++) {
int ele = arr[i];
str += ele;
if (i != arr.length - 1) {
str += ",";
}
}
str += "]";
System.out.println(str);
}
}
热心网友
时间:2023-10-09 04:28
将两个数组的元素传到一个数组内
首先定义两个数组 假设数组长度都为5 当然可以自己定义长度根据实际要求来
public class Test{
public static void main (String [] args){
int [] arr1= new int [5];
int [] arr2= new int [5];
//此处调用方法 进行赋值调用
int [] newarr=getArray(arr1,arr2);//就可以得到新的数组了
}
//此处定义一个方法 把两个数组合并到一个新数组中去
public static int [] getArray(int [] arr1,int [] arr2 ){
//下面定义一个新的数组newarr用来接收arr1,arr2数组的数据新数组的长度是原来两个数组长度之和,即arr1.length+arr2.length
int [] newarr= new int [arr1.length+arr2.length];
//然后进行数组的传递 先把arr1的元素传递给新数组 再把arr2的元素传递给新数组(newarr)
for(int i = 0;i<arr1.length;i++){
newarr[i]=arr1[i];
}
//此处把arr2的元素传递给新数组(newarr)
for(int i= 0;i<arr2.length;i++){
newarr[i+arr1.length]= arr2[i];//此处赋值的是arr1.length 以后的元素 因为newarr的数组长度是arr1.length+arr2.length;
}
return newarr;
}
}
热心网友
时间:2023-10-09 04:29
广州疯狂JAVA课程 视频课程 疯狂JAVA书籍网络畅销第一 的