package com.liuc.test.think.chapter16;
import java.util.Arrays;
public class CopyingArray {
/**
* @param args
*/
public static void main(String[] args) {
int[] i=new int[7];
int[] j=new int[10];
Arrays.fill(i, 47);
Arrays.fill(j, 99);
System.out.println(Arrays.toString(i));
System.out.println(Arrays.toString(j));
System.arraycopy(i, 1, j, 2, 4);
System.out.println(Arrays.toString(j));
}
}
输出结果:
[47, 47, 47, 47, 47, 47, 47]
[99, 99, 99, 99, 99, 99, 99, 99, 99, 99]
[99, 99, 47, 47, 47, 47, 99, 99, 99, 99]
public static native void arraycopy(Object src, int srcPos,
Object dest, int destPos,
int length);
这是一个native方法,很高效。当然对数组的任何越界操作都会导致异常
src:源数组名,表示从这个数组复制数据
srcPos:从源数组这个位置开始复制数据
dest:复制到的目标数组的名字
destPose:从目标数组的哪个位置开始替换
length:需要复制的元素个数
数组比较用Arrays.equals,多维数组的比较用Arrays.deepEquals
package com.liuc.test.think.chapter16;
import java.util.Arrays;
public class CompareArrays {
public static void main(String[] args) {
int a[]=new int[10];
int b[]=new int[10];
Arrays.fill(a, 20);
Arrays.fill(b, 20);
System.out.println(Arrays.equals(a, b));
a[2]=30;
System.out.println(Arrays.equals(a, b));
}
}
分享到:
相关推荐
个人研究所得,包含对其内部jdk源码的分析。 同时会结合ArrayList中对该两个方法的调用做进一步说明。...总结一句话:在允许的情况下,尽量调用System.arraycopy方法,实在不行再调用Arrays.copyOf方法。
System提供了一个静态方法arraycopy(),我们可以使用它来实现数组之间的复制。
使用System.arraycopy()实现数组之间的复制
目录一、深拷贝与浅拷贝解析浅拷贝深拷贝二、数组拷贝的方式1.for循环来拷贝2.System.arraycopy( )拷贝3.Arrays.copyOf( )拷贝4.clone( )拷贝5.解释三、四种拷贝方式效率比较1. System.arraycopy( )2.Arrays.copyOf...
System.arraycopy(writeStringToBytes, i*tempLength, temp, 0, writeStringToBytes.length%tempLength); ops.write(new String(temp,"GBK").trim().getBytes(),0,writeStringToBytes.length%tempLength);...
import java.util.Arrays; import java.util.Random; public class DoubleBall { public static void main(String[] args) { System.out.println(create()); } public static String create(){ String[] ...
System.arraycopy方法4. Arrays.copyOfRange方法 1. 直接赋值 在java中,我们可以将一个数组变量直接拷贝给另一个数组变量。但拷贝后,两个数组变量引用的是同一个数组。若改变其中一个数组中的内容,另一个数组也...
public static byte[] concat( byte[]...arrays ) { // Determine the length of the result array int totalLength = 0; for (int i = 0; i < arrays.length; i++) { totalLength += arrays[i].length; } /...
/** * 动态调整数组的长度 */ public class AdjustArrayLength { private static int DEFAULT_LENGTH = 10; public static Integer... System.arraycopy(src, 0, result, 0, src.length); return result; }
● 复制数组:使用System.arraycopy()方法或Arrays.copyOf()方法将一个数组复制到另一个数组中。 ● 排序数组:使用Arrays.sort()方法对数组进行排序。 ● 搜索数组:使用Arrays.binarySearch()方法在一个已排序的...
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;...
数组的复制:System.arraycopy(src, srcPos, dest, destPos, length); Arrays.copyOf(original, newLength); 数组的排序:排序方法和排序分类 Arrays.sort(arr);//对arr进行升序排列 2.方法(函数、过程): ...
import java .util.*; public class SystemTest { public static void ... System.out.println(System.arraycopy); int[] dst = new int[src.length]; System.arraycopy(src, 0, dst
数组拷贝,建议使用System.arraycopy()速度更快,把source数据内容拷贝到destination中使用Object则支持多种对象数组;去除数组中的重复元素;四舍五入;判断字符串是否是小数;半角数字的unicode范围;取得ascii码;
90行Java代码实现小巧俄罗斯方块~~ 66行改为: System.arraycopy(matrix[j-1],0,matrix[j],0,10); 修改的一个Bug 最新版本在:http://wireless.javaeye.com/blog/595321
2、System.arraycopy() 3、Arrays.copyOfRange() 4、Object.clone() 5、for循环 6、执行效率比较 7、小结 前言 在Java中,如果A、B是基本的数据类型,可以用赋值的方式传递值。如果A、B是两个相同类型的数组,那么A=...
编写一个类MyArray,包含一个复制数组的方法,功能与System.arraycopy()相同。请使用泛型改写MyArray类实现数组复制. 请编写程序。首先在程序中定义一个枚举类型,它含有7个枚举常量,分别表示一个星期每一天的名称...
Java数组扩容的原理 1)Java数组对象的大小是固定... 3)System.arraycopy()可以复制数组。 4)Arrays.copyOf()可以简便的创建数组副本。 5)创建数组副本的同时将数组长度增加就变通的实现了数组的扩容。
b) System.arraycopy()方法 c) Arrays.copyOf()方法 d) 使用clone()方法 e) Arrays.copyOfRange()方法 接下来,我们看下这几种方法的效率和源码,以及如何使用序列化和反序列化实现组合类的深复制。 我们以百万级和...