Java数组赋值给另一个数组是指将一个数组的值赋值给另一个数组,以便在不影响原来的数组的情况下,对新的数组进行操作。
Java中有多种方法可以实现将一个数组赋值到另一个数组,其中最常用的方法是使用System.arraycopy()方法。System.arraycopy()方法是Java中提供的一个静态方法,它可以将源数组中的元素复制到目标数组中。该方法有五个参数:
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
其中src是源数组,srcPos是源数组开始复制的位置,dest是目标数组,destPos是目标数组开始复制的位置,length是要复制的元素个数。
使用System.arraycopy()方法时需要注意几个问题:
以下代码显示了如何使用for loop复制数组。
import java.util.Arrays; public class Main { public static void main(String[] args) { int[] data = { 1, 2, 3, 4, 5 }; // Expand the data array to 7 elements int[] eData = expandArray(data, 7); // Truncate the data array to 3 elements int[] tData = expandArray(data, 3); System.out.println("Original Array: " + Arrays.toString(data)); System.out.println("Expanded Array: " + Arrays.toString(eData)); System.out.println("Truncated Array: " + Arrays.toString(tData)); } // Uses a for-loop to copy an array public static int[] expandArray(int[] oldArray, int newlength) { int originallength = oldArray.length; int[] newArray = new int[newlength]; int elementsToCopy = 0; if (originallength > newlength) { elementsToCopy = newlength; } else { elementsToCopy = originallength; } for (int i = 0; i < elementsToCopy; i++) { newArray[i] = oldArray[i]; } return newArray; } }
上面的代码生成以下结果。
我们还可以使用System类的arraycopy()方法将数组的元素复制到另一个数组。
arraycopy()方法的签名如下:
public static void arraycopy(Object sourceArray, int sourceStartPosition, Object destinationArray, int destinationStartPosition, int lengthToBeCopied)
这里,
我们可以用下面的代码替换前面的for循环:
System.arraycopy (ids, 0, tmyIDs, 0, elementsToCopy);
以下代码显示如何使用System.arraycopy复制数组。
import java.util.Arrays; public class Main { public static void main(String[] args) { int[] data = { 1, 2, 3, 4, 5 }; // Copy data array to new arrays int[] eData = new int[9]; int[] tData = new int[2]; System.arraycopy(data, 0, eData, 0, 5); System.arraycopy(data, 0, tData, 0, 2); System.out.println("Original Array: " + Arrays.toString(data)); System.out.println("Expanded Array: " + Arrays.toString(eData)); System.out.println("Truncated Array: " + Arrays.toString(tData)); } }
上面的代码生成以下结果。
我们可以使用数组的clone()方法创建数组的副本。对于原始类型,克隆的数组将具有原始数组的真实副本。
但是,对于引用类型,存储在每个元素中的对象的引用将复制到克隆的数组。
这被称为浅拷贝。在浅层复制中,两个数组的元素(原始和克隆)指的是内存中的同一个对象。
下面的代码演示了一个int数组和一个String数组的克隆。
public class Main { public static void main(String[] args) { // Create an array of 3 integers 1,2,3 int[] ids = { 1, 2, 3 }; int[] clonedIds = (int[]) ids.clone(); // Create an array of 3 strings. String[] names = { "A", "B", "C" }; String[] clonedNames = (String[]) names.clone(); } }
Java数据类型教程 - Java byte数据类型字节数据类型是8位有符号Java原语整数数据类型。其范围为-128至127 (-27to 27- 1)。字节类...
Java 实例 - 数组差集 Java 实例以下实例演示了如何使用 removeAll () 方法来计算两个数组的差集:import java.util.ArrayList;p...
Java 实例 - 判断数组是否相等 Java 实例以下实例演示了如何使用 equals ()方法来判断数组是否相等:import java.util.Arrays;pu...
Java 实例 - 标签(Label) Java 实例 Java 中的标签是为循环设计的,是为了在多重循环中方便的使用break 和coutinue 。以下实例当...