数组合并

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是任意类型的数组,但是程序出错,请问应该怎么编写以上函数?

谢谢!
...全文
107 8 打赏 收藏 举报
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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
具体出什么错了?
  • 打赏
  • 举报
回复
相关推荐
发帖
Java SE
加入

6.2w+

社区成员

Java 2 Standard Edition
申请成为版主
帖子事件
创建了帖子
2002-04-22 11:52
社区公告
暂无公告