`
greemranqq
  • 浏览: 971979 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

JAVA 数组复制

阅读更多

先看一道题:

	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(b[i]);
		}
	}

 

 

猜猜应该打印什么?

 

 

答案:2345011111

 

数组复制:

1.使用FOR循环,将数组的每个元素复制或者复制指定元素,不过效率差一点
2.使用clone方法,得到数组的值,而不是引用,不能复制指定元素,灵活性差一点
3.使用System.arraycopy(src, srcPos, dest, destPos, length)方法,推荐使用

举例:
1.使用FOR循环
int[] src={1,3,5,6,7,8};
int[] dest = new int[6];
for(int i=0;i dest = src;
}

2.使用clone
int[] src={1,3,5,6,7,8};

int[] dest;

dest=(int[]) src.clone();//使用clone创建
副本,注意clone要使用强制转换

 

3.使用System.arraycopy
int[] src={1,3,5,6,7,8};
int[] dest = new int[6];

System.arraycopy(src, 0, dest, 0, 6);

-------------------------------------------------------------------
System提供了一个静态方法arraycopy(),我们可以使用它来实现数组之间的复制.
其函数原型是:public static void arraycopy(Object src,
                             int srcPos,
                             Object dest,
                             int destPos,
                             int length)
src:源数组; srcPos:源数组要复制的起始位置;
dest:目的数组; destPos:目的数组放置的起始位置; 
length:复制的长度.
注意:src and dest都必须是同类型或者可以进行转换类型的数组.
有趣的是这个函数可以实现自己到自己复制,
比如:int[] fun ={0,1,2,3,4,5,6};
System.arraycopy(fun,0,fun,3,3);
则结果为:{0,1,2,0,1,2,6};实现过程是这样的,先生成一个长度为length的临时数组,将fun数组中srcPos 到srcPos+length-1之间的数据拷贝到临时数组中,再执行System.arraycopy(临时数组,0,fun,3,3).

 

 

详情可参考:http://xiaooman07.iteye.com/blog/451843

分享到:
评论
1 楼 亲_斤_水_良 2015-09-04  
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(b[i]);
                     System.out.print(i);
}
}

相关推荐

    java数组复制函数的使用demo

    java学习中数组复制函数的调用方法,供java初学者入门参考使用,分享给大家

    22.java数组的复制.zip

    22.java数组的复制.zip22.java数组的复制.zip22.java数组的复制.zip22.java数组的复制.zip22.java数组的复制.zip22.java数组的复制.zip22.java数组的复制.zip22.java数组的复制.zip22.java数组的复制.zip22.java数组...

    Java数组+数组排序+数组复制+最大最小值+合并数组+数组升降序排序+数组查找

    Java数组: Java数组排序:冒泡排序、选择排序 、插入排序 、快速排序、希尔排序...三种Java数组复制方法 Java数组最大最小值 四种合并Java数组方法 Java数组升降序排序 Java数组查找:二分查找、顺序查找、插值查找法

    Java数组练习题(带答案).doc

    Java数组是Java编程语言中的基本数据结构之一,用于存储固定数量的同类型元素。了解和熟练掌握数组的使用是学习Java的重要环节。本篇练习题涵盖了数组的基本概念、操作和异常处理,下面是针对题目中涉及知识点的详细...

    java数组复制的四种方法效率对比

    Java 数组复制的四种方法效率对比 Java 数组复制是 Java 编程中非常重要的一个操作,它可以将源数组的元素复制到目标数组中。今天,我们将讨论 Java 数组复制的四种方法,并比较它们的效率。 System.arraycopy ...

    java数组扩容2

     2)利用数组复制方法可以变通的实现数组扩容。  3)System.arraycopy()可以复制数组。  4)Arrays.copyOf()可以简便的创建数组副本。  5)创建数组副本的同时将数组长度增加就变通的实现了数组的扩容。

    Java数组,Java数组,多线程编程

    Java数组是程序设计中的基本构建块,它允许程序员存储多个相同类型的数据在一个单一的结构中。在Java中,数组是一种对象,它们具有固定的大小,并且一旦创建,就不能更改其长度。数组提供了通过索引来访问其元素的...

    java数组_java_java数组_

    Java数组是Java编程语言中的基本数据结构之一,它允许我们存储多个同类型的元素在一个单一的变量中。数组的使用在程序设计中至关重要,因为它提供了一种高效、有序的方式来管理和访问数据。下面将深入探讨Java数组的...

    java数组

    Java数组是程序设计中不可或缺的基础概念,它是一种数据结构,允许我们存储同类型的多个元素。在Java中,数组是对象,具有固定的大小,一旦创建,其长度就不能改变。本篇文章将深入探讨Java数组的各个方面,包括创建...

    java高端技术课程--Java数组如何实现复制

    Java提供了System类的arraycopy()方法,它是进行数组复制的最直接和高效的方式。该方法接受五个参数:源数组、源数组起始位置、目标数组、目标数组起始位置和复制的元素数量。例如: ```java int[] srcArray = {1...

    java数组函数(摘自JAVA编程思想)

    通过`com.bruceeckel.util`包中的工具类,我们可以更加高效和便捷地处理Java数组,提高代码的可读性和维护性。学习和熟练掌握这些数组函数,对于提升Java编程能力是非常有帮助的。在实际开发中,我们应该充分利用...

    java 数组 PPT

    Java数组是Java编程语言中基本的数据结构之一,它允许存储同一类型的多个元素。在本PPT中,我们将深入探讨Java数组的概念、创建、初始化、访问和操作数组的各种方法。 一、数组的概念 数组是一种线性数据结构,它将...

    java 数组和字符串

    ### Java数组和字符串详解 #### 实验目标与背景 本次实验旨在深化理解Java中的数组与字符串操作,聚焦于`String`类与`StringBuffer`类的掌握,包括它们的常用方法、相等性判断的不同方式、数组的创建及引用机制,...

    java 数组求和计算

    以上内容涵盖了Java数组求和计算的基本知识以及相关的扩展话题。理解并掌握这些知识点对于进行有效的Java编程至关重要。在实际应用中,根据具体需求,可能还需要考虑性能优化、异常处理等方面的问题。

    5-Java数组与方法

    当你把数组作为参数传递给方法时,实际上是传递了数组的引用,而非复制整个数组。这意味着在方法内部对数组的修改会影响到原始数组。例如: ```java void modifyArray(int[] arr) { arr[0] = 10; } int[] original...

    第03讲 JAVA数组.ppt

    【Java数组】是Java编程语言中基础且重要的数据结构,它允许存储固定数量的相同类型的数据。数组在Java中属于引用类型,也就是说数组本身是一个对象,数组中的每个元素相当于这个对象的成员变量。数组可以包含任何...

    Java数组堆栈

    Java数组堆栈的实现有一些缺点,例如,在扩展数组的大小时,需要复制整个数组,可能会导致性能问题。此外,ArrayStack类不支持多线程访问,可能会导致线程安全问题。 应用场景 Java数组堆栈可以应用于各种场景,...

    Java数组相关的例子代码

    本篇将深入探讨Java数组的相关知识点,并通过实际的例子代码来加深理解。 1. **数组的声明与初始化** 在Java中,我们可以声明一个数组并同时初始化它。例如,创建一个包含5个整数的数组: ```java int[] ...

Global site tag (gtag.js) - Google Analytics