java中复制数组的几种方式
来源:互联网 发布:minecraft 源码 unity 编辑:程序博客网 时间:2024/05/18 13:45
在java语言中,数组是一个比较重要的话题,最近在使用的过程中遇到问题总结了下
- 最简单的方式就是直接赋值,A=B;它用于基本类型的数据传递值,但是如果A,B是两个同类型的数组,复制就相当于将一个数组变量的引用传递给另一个数组;如果一个数组发生改变,那么引用同一数组的变量也要发生改变.
直接用for循环赋值即可。
代码:public class Test {public static void main(String[] args) {int[] A={1,2,3,4,5};System.out.println("数组A的元素如下:");for(int i=0;i<A.length;i++){System.out.print(A[i]+" ");}int[] B=A;System.out.println("\n复制的数组B:");for(int i=0;i<B.length;i++){System.out.print(B[i]+" ");}}}
运行结果: - 第二种方法使用克隆方法(Objectjava.lang.Object.clone()),得到数组的值,而不是引用,不能复制指定元素,灵活性差一点
代码:public class Test {public static void main(String[] args) {int[] A={1,2,3,4,5};System.out.println("数组A的元素如下:");for(int i=0;i<A.length;i++){System.out.print(A[i]+" ");}int[] C;C=(int[])A.clone();System.out.println("\n复制后的数组C是:");for(int i=0;i<C.length;i++){System.out.print(C[i]+" ");}}}
运行结果: - 使用System提供了的静态方法arraycopy(),我个人比较喜欢这种用复制方法,他可以指定复制的长度和位置。
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
- 从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。从
src
引用的源数组到dest
引用的目标数组,数组组件的一个子序列被复制下来。被复制的组件的编号等于length
参数。源数组中位置在srcPos
到srcPos+length-1
之间的组件被分别复制到目标数组中的destPos
到destPos+length-1
位置。(以上是jdk文档中的解释,我的理解是src复制 的原数组,srcPos是复制原数组的起始位置,dest是需要复制的目标数组,destPos是目标数组的其实位置,length是复制的长度)
代码:import java.util.Scanner;public class Test {public static void main(String[] args) {int[] A = { 1, 2, 3, 4, 5 };System.out.println("数组A是:");for (int i = 0; i < A.length; i++) {System.out.print(A[i] + " ");}Scanner scanner = new Scanner(System.in);System.out.println("\n请输入数组B的元素个数b:");int b = scanner.nextInt();scanner.close();int[] B = new int[b];System.arraycopy(A, 0, B, 0, b);System.out.println("赋值后的数组B是:");for (int i = 0; i < B.length; i++) {System.out.print(B[i] + " ");}}}
执行结果如下:
- 从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。从
(ps:有问题最好先查文档,文档里写的最可信、直观而又清楚了)
1 0
- java中复制数组的几种方式
- 【java】数组复制几种方式比较
- Java中数组复制的几种方法
- Java中数组复制的几种方法
- JAVA中数组复制的几种方法
- Java中数组复制的几种方法
- java中数组复制的几种常见用法
- java中数组复制的4种方式分析
- java 文件复制的几种方式
- java----复制文件的几种方式
- Java复制数组的几种方法
- java数组复制的4种方式
- [java]数组复制的2种方式
- Java创建数组的几种方式
- Java创建数组的几种方式
- Java创建数组的几种方式
- java中数组的复制
- Java中数组的复制
- 网页视频代码
- android之notifyDataSetChanged失效
- Ubuntu VSFTP的配置方法
- JSP中 Session和作用域的使用
- LeetCode *** 168. Excel Sheet Column Title
- java中复制数组的几种方式
- 【剑指offer系列】 丑数___34
- interleaving string
- 编写新闻客户端&网络编程day1(66期第四天)
- Vulkan Render Pass
- stash的hooks和api
- ios拨打电话
- 排序问题-希尔排序
- 第6周项目1-分数类的雏形(1)