当前位置: 技术问答>java相关
数组合并
来源: 互联网 发布时间:2015-05-13
本文导语: 系统提供函数:System.arraycopy()将两个数组合并成一个大的数组. 我希望有这么一个函数: public static object getArrayCopy(object tempA,int lengthA,object tempB,int lengthB){ Object tmpData=new Object(); System.arraycopy(tempA,...
系统提供函数:System.arraycopy()将两个数组合并成一个大的数组.
我希望有这么一个函数:
public static object getArrayCopy(object tempA,int lengthA,object tempB,int lengthB){
Object tmpData=new Object();
System.arraycopy(tempA, 0, tmpData, 0, lengthA);
System.arraycopy(tempB, 0, tmpData, lengthA, lengthB);
return tmpData;
}
tempA,tempB是任意类型的数组,但是程序出错,请问应该怎么编写以上函数?
谢谢!
我希望有这么一个函数:
public static object getArrayCopy(object tempA,int lengthA,object tempB,int lengthB){
Object tmpData=new Object();
System.arraycopy(tempA, 0, tmpData, 0, lengthA);
System.arraycopy(tempB, 0, tmpData, lengthA, lengthB);
return tmpData;
}
tempA,tempB是任意类型的数组,但是程序出错,请问应该怎么编写以上函数?
谢谢!
|
那是目标结果数组长度出错
给你一个
public class BytesAdd {
public static byte[] bytesAddWay(byte[] buf1,byte[] buf2) {
byte[] bufret=null;
int len1=0;
int len2=0;
if(buf1!=null)
len1=buf1.length;
if(buf2!=null)
len2=buf2.length;
if(len1+len2>0)
bufret=new byte[len1+len2];
if(len1>0)
System.arraycopy(buf1,0,bufret,0,len1);
if(len2>0)
System.arraycopy(buf2,0,bufret,len1,len2);//bufret like is (buf1+buf2)
return bufret;
}
}
给你一个
public class BytesAdd {
public static byte[] bytesAddWay(byte[] buf1,byte[] buf2) {
byte[] bufret=null;
int len1=0;
int len2=0;
if(buf1!=null)
len1=buf1.length;
if(buf2!=null)
len2=buf2.length;
if(len1+len2>0)
bufret=new byte[len1+len2];
if(len1>0)
System.arraycopy(buf1,0,bufret,0,len1);
if(len2>0)
System.arraycopy(buf2,0,bufret,len1,len2);//bufret like is (buf1+buf2)
return bufret;
}
}
|
是数组长度的问题。
|
具体出什么错了?