`
chandler
  • 浏览: 81781 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

不用循环Copy数组的方法

 
阅读更多

arraycopy(Object src,  int  srcPos,Object dest, int destPos,int length);

这是在看源代码的时候,看到方法。简单的说就是src是源数组。dest是目标数组。srcPos,和destPos的变量是起始位置,然后length是长度。具体可以看调用。

这个方法是一个native的方法。

 

 

然后我想了一个在数组中插入的方法。可以不用循环。

/**
	 * 主要作用目的是让数组能够完成插入的操作。
	 * 比方说长度为10的char数组,在位置5,插入一个长度为2的数组,产生一个新的数组,长度为12。 
	 */
	@Test
	public void insertChar(){
		
		String src ="abcdefghjk";
		String insert = "xy";
		
		
		char[] srcArray = src.toCharArray();
		char[] desArray = new char[12];
		char[] insertArray = insert.toCharArray();
		
		int position = 5;
		
		//复制Position之前的
		System.arraycopy(srcArray, 0, desArray, 0, position);
		System.arraycopy(insertArray, 0, desArray, position, insert.length());
		System.arraycopy(srcArray, position, desArray, position + insert.length(),src.length()- position);
		
		logger.info("des array size:"+srcArray.length);
		logger.info("des array:"+srcArray.toString());
		
		int i = 1;
		for(char c:desArray){
			logger.info(i+" char:"+c);
			i++;
		}
		
	}
 
分享到:
评论

相关推荐

    数组实现循环队列

    数组实现循环队列的原理是建立一个循环数组,让数据不断地入数组和出数组,而在从数组中取数据前数组中要有数据,而在入数据之前数组中要有空余的存储单元。这样可以避免数据的丢失和溢出。 在实现循环队列时,需要...

    js数组的深拷贝

    这是一种简单但有限的深拷贝方法,只适用于没有循环引用和函数的纯JSON对象的数组。示例代码如下: ```javascript function deepCopy(arr) { return JSON.parse(JSON.stringify(arr)); } var originalArray = [1,...

    C#中数组初始化与数组元素复制的方法

    本篇文章将深入探讨C#中数组的初始化与数组元素复制的方法,包括数组的创建、初始化以及如何利用`Array.Copy`方法来高效地复制数组元素。 ### 1. 数组的创建与初始化 在C#中,我们可以通过以下两种方式来创建和...

    实现数组复制常用的5种方式及组合类的深复制(深拷贝)

    这是Java提供的高效数组复制方法,直接由JVM底层实现,性能优于for循环。它允许在内存中直接移动数据,因此速度较快。 ```java System.arraycopy(arr, 0, arr2, 0, length); ``` 3. **Arrays.copyOf()**: 这是...

    C#循环移位(不好,不要介意哦)

    在实际编程中,除了手动实现循环移位,还可以使用数组的`CopyTo`方法和`Buffer.BlockCopy`等函数来优化性能。此外,如果处理的是列表,可以使用`List<T>.RemoveAt`和`List<T>.Add`方法,但它们通常效率较低,因为...

    C# 拷贝数组的几种方式.

    C# 数组复制方式详解 C# 编程语言中,数组的复制是非常常见的一种操作,但是如果不正确地使用复制方法,可能会导致...CopyTo() 方法需要手动指定目标数组的索引和长度,而 Clone() 方法需要强制转换为目标数组类型。

    一维数组题目8道题带答案

    - 使用 `Array.Copy()` 方法可以复制数组的一部分或全部到另一个数组。 - 使用 `new` 关键字和数组初始化语法可以创建数组的新副本。 6. **多维数组**: - 虽然标题提到的是一维数组,但了解多维数组(如二维...

    C# 三种字节数组(byte[])拼接的性能对比测试

    Buffer.BlockCopy是.NET Framework提供的一个方法,它能高效地将源数组的一部分复制到目标数组。这种方法在处理大量数据时通常非常快速,因为它直接在内存中进行操作,而无需创建新的字节数组。 2. **使用Array....

    自定义一个包含10个元素的一维int数组,并在声明语句中为其赋值;使用循环语句,随机选取该数组中的5个不重复的数据

    接下来我们将深入探讨如何实现这一任务,以及如何使用循环语句和随机数生成来选取数组中的5个不重复的元素。 首先,让我们看看如何声明并初始化一个包含10个元素的int数组: ```csharp int[] array = new int[] { ...

    VB 数组的复制实例

    VB.NET提供了System.arraycopy函数的等价——Array.Copy方法,它可以快速复制整个数组。例如: ```vb Dim sourceArr(0 To 4) As Integer = {1, 2, 3, 4, 5} Dim destArr(0 To 4) As Integer Array.Copy(sourceArr, ...

    java数组

    循环结构(如for-each循环或传统的for循环)常用于遍历数组所有元素: ```java for (int value : numbers) { System.out.println(value); } ``` 5. **数组长度**: `length`属性返回数组的长度,即数组包含...

    Java中数组的各种应用

    Java的`Arrays`类提供了许多有用的方法,如`sort()`用于排序数组,`equals()`比较两个数组是否相等,`fill()`用于填充数组元素,以及`deepEquals()`用于比较多维数组。 六、复制数组 要复制一个数组,可以使用`...

    字符串数组.zip

    6. **比较与复制**:比较两个字符串数组是否相等,或者使用`Array.Copy()`进行数组复制。 在实际开发中,字符串数组广泛应用于各种场景,如用户输入验证、数据解析、文件路径管理等。了解如何有效地操作和管理字符...

    Java数组相关的例子代码

    我们可以使用for循环遍历数组的所有元素: ```java for (int i = 0; i ; i++) { System.out.println(numbers[i]); } ``` 4. **多维数组** Java支持多维数组,例如二维数组(矩阵): ```java int[][] ...

    c# 中数组的算法 c# 中数组的算法,c# 中数组的算法

    6. 数组复制与合并:`Array.Copy()`方法用于复制数组,`Array.Join()`则用于合并两个数组。 7. 排列组合:在数组中,可以使用递归或栈来实现全排列或组合的算法,这些在解决组合问题时非常有用。 8. 广义表:虽然...

    java编程基础—数组练习.docx

    在练习2中,`copyFrom`数组的值被复制到`copyTo`数组中。参数分别为源数组、源起始位置、目标数组、目标起始位置和要复制的元素数量。 4. **Arrays.sort()排序**: `java.util.Arrays.sort()`方法可以对数组进行...

    数组和集合对象(一) Array练习

    6. **复制数组**:使用Array.Copy方法复制数组。 7. **合并数组**:将两个数组合并为一个新的数组。 练习ArrayEx的目的在于让你熟悉数组的基本操作,理解其工作原理,并能熟练应用到实际项目中。通过编写代码并运行...

    c#语言数组用法详解

    C#中的数组提供了丰富的操作,包括访问元素(如`numbers[0]`),遍历数组(通过`for`循环或`foreach`循环),以及使用`Array`类提供的各种静态方法,如`Copy`、`Sort`等。此外,C#还引入了泛型集合,如`List<T>`,...

    C#基础知识 C#数组

    数组还有几个特殊的方法,如`Array.Copy()`用于复制数组的部分或全部,`Array.Resize()`用于动态改变数组的大小。但需要注意,一旦数组被创建,其长度是固定的,因此不能直接增加或减少元素数量。 在C#中,数组也是...

Global site tag (gtag.js) - Google Analytics