数组合并

lthu 2002-04-22 11:52:06
系统提供函数: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是任意类型的数组,但是程序出错,请问应该怎么编写以上函数?

谢谢!
...全文
142 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lthu 2002-04-22
  • 打赏
  • 举报
回复
我也试过了,是数组长度的问题,能解决吗?

大家一起努力啊!
mindd 2002-04-22
  • 打赏
  • 举报
回复
是数组长度的问题。
lthu 2002-04-22
  • 打赏
  • 举报
回复
不行啊
alphazhao 2002-04-22
  • 打赏
  • 举报
回复
结果也要改为object
即所有byte[] 替换看看
我没注意这个
原理上都一样啊
alphazhao 2002-04-22
  • 打赏
  • 举报
回复
将byte[]类型改为object就行
lthu 2002-04-22
  • 打赏
  • 举报
回复
出错信息:java.lang.ClassCastException: java.lang.Object

alphazhao(绿色咖啡):我希望传入的两个数组是任意同类型的,不是指定byte[].

谢谢!!
alphazhao 2002-04-22
  • 打赏
  • 举报
回复
那是目标结果数组长度出错
给你一个

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;
}
}
richard_hu 2002-04-22
  • 打赏
  • 举报
回复
具体出什么错了?

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧