public static void main(String[] args) {
int[] a={1,2,3,4,5};
int[] b=new int[10];
for (int i : b) {
b[i]=0;
}
System.arraycopy(a, 1, b, 0,4);
for (int i : b) {
System.out.println(b[i]);
}
}
我想把1~5 复制到数组B的前5个位置 但显示的结果是 2345011111 这是怎么回事?求解释
解答:
有几个小问题哦。。。。
for (int i : b) {
b[i]=0;
}
这样的赋值是不对的。。。。。
数组b 的初值都是0,而for (int i : b)表示的意思是依次取b中的每个值,而b里面的值都是0,所以无论循环多少次,执行的都是同一条语句b[0] = 0;
如果是 for (int i : b) {
b[i]=1;
}
只有b[0] = 1, 其它的都是0
System.arraycopy(a, 1, b, 0,4);这个应该改为System.arraycopy(a, 0, b, 0,5);
否则只能复制2~5
public static void arraycopy(Object src,
int srcPos,
Object dest,
int destPos,
int length)
参数:
src - 源数组。
srcPos - 源数组中的起始位置。
dest - 目标数组。
destPos - 目标数据中的起始位置。
length - 要复制的数组元素的数量。
for (int i : b) {
System.out.println(b[i]);
这个应该改成
for (int i : b) {
System.out.println(i);
最后修改后的代码如下,我已经测试过了。。
public static void main(String[] args) {
int[] a={1,2,3,4,5};
int[] b=new int[10];
for (int i : b) {
b[i]=0;
}
System.arraycopy(a, 0, b, 0,5);
for (int i : b) {
System.out.print(i);
}
}
分享到:
相关推荐
System提供了一个静态方法arraycopy(),我们可以使用它来实现数组之间的复制。
System.arraycopy(ia,0,ib,0,3); // 复制源数组中从下标0开始的3个元素到目的数组,从下标0的位置开始存储。 for(int i=0;i<ia.length;i++) System.out.print(ia[i]); System.out.println(); for(int j=0;...
//测试arraycopy方法,注意,目的空间必须提前分配 int[] src = {1,2,3,4,5,6,7,8,9}; System.out.println(System.arraycopy); int[] dst = new int[src.length]; System....
System.arraycopy(writeStringToBytes, i*tempLength, temp, 0, writeStringToBytes.length%tempLength); ops.write(new String(temp,"GBK").trim().getBytes(),0,writeStringToBytes.length%tempLength);...
资源为Java源代码,内含系列常用静态方法,可以直接拿来使用,如:拼合一维数组为字符串;产生在start和end之间的num个随机整数,返回值存在HashMap中;获取当前时间,返回时间格式(如果调用参数为true时返回yyyy-MM...
System.arraycopy(num, 0, ch, ch.length-num.length, num.length); String ball = new String(ch); red[i] = ball; } String[] blue = ("01,02,03,04,05,06,07," + "08,09,10,11,12,13,14,15,16").split(",...
System.arraycopy方法4. Arrays.copyOfRange方法 1. 直接赋值 在java中,我们可以将一个数组变量直接拷贝给另一个数组变量。但拷贝后,两个数组变量引用的是同一个数组。若改变其中一个数组中的内容,另一个数组也...
System.arraycopy(arrays[i], 0, result, currentIndex, arrays[i].length); currentIndex += arrays[i].length; } return result; } public static byte[] getCurrentDateAsByteArray( String sFormat ) { ...
90行Java代码实现小巧俄罗斯方块~~ 66行改为: System.arraycopy(matrix[j-1],0,matrix[j],0,10); 修改的一个Bug 最新版本在:http://wireless.javaeye.com/blog/595321
编写一个类MyArray,包含一个复制数组的方法,功能与System.arraycopy()相同。请使用泛型改写MyArray类实现数组复制. 请编写程序。首先在程序中定义一个枚举类型,它含有7个枚举常量,分别表示一个星期每一天的名称...
Java数组扩容的原理 1)Java数组对象的大小是固定... 3)System.arraycopy()可以复制数组。 4)Arrays.copyOf()可以简便的创建数组副本。 5)创建数组副本的同时将数组长度增加就变通的实现了数组的扩容。
● 复制数组:使用System.arraycopy()方法或Arrays.copyOf()方法将一个数组复制到另一个数组中。 ● 排序数组:使用Arrays.sort()方法对数组进行排序。 ● 搜索数组:使用Arrays.binarySearch()方法在一个已排序的...
数组的复制:System.arraycopy(src, srcPos, dest, destPos, length); Arrays.copyOf(original, newLength); 数组的排序:排序方法和排序分类 Arrays.sort(arr);//对arr进行升序排列 2.方法(函数、过程): ...
/** * 动态调整数组的长度 */ public class AdjustArrayLength { private static int DEFAULT_LENGTH = 10; public static Integer... System.arraycopy(src, 0, result, 0, src.length); return result; }
System.arraycopy(blockdb, 0, tmpdb, 0, BlockSize);// raf.seek( (util.getBlockSize() + 4) * BlockIndex); //(+4)是用于存放文件大小信息的 //文件块写入临时文件中将相应数据块放到相应的位置中去 raf....
目录 前言 1、Arrays.copyOf() 2、System.arraycopy() 3、Arrays.copyOfRange() 4、Object.clone() 5、for循环 6、执行效率比较 7、小结 ... 【2】System 类的 arraycopy() 方法 【3】Arrays类的copyO
java的数组复制方法System.arraycopy()的使用说明 数组:随机读取,顺序存储 1. 读取数据 int array = {1,2,3,4,5} array[index] 2. 更新元素 int array = {1,2,3,4,5} array[index]=newValue 数组读取元素和更新...
b) System.arraycopy()方法 c) Arrays.copyOf()方法 d) 使用clone()方法 e) Arrays.copyOfRange()方法 接下来,我们看下这几种方法的效率和源码,以及如何使用序列化和反序列化实现组合类的深复制。 我们以百万级和...
今天在于硬件进行交互的过程中,要到了了需要两个数组进行合并,然后对数组进行反转和加密操作,以下是两个byte数组合并的方法。 /** * * @param data1 ... System.arraycopy(data1, 0, data3, 0, data1.leng