我有一个大小为10的数组A和另一个大小为5的数组B.
两者都具有相同的元素,除了数组A还有5个空元素。我们可以将指针A的值替换为指针B,如下所示:
arrayA = arrayB;
答案 0 :(得分:3)
arrayA = arrayB;
将使数组成为对数组的引用。 Java中没有指针。
答案 1 :(得分:2)
最接近一举的是这个单线:
System.arrayCopy(arrayA, 0, arrayB, 0, arrayB.length);
答案 2 :(得分:1)
不,这只会让变量arrayA引用arrayB(并且失去对它所持有的任何数组的原始引用,数据丢失)。您需要像这样复制它:
String[] a = ....
String[] b = new String[a.length];
System.arraycopy(a,0,b,0, a.length);
请注意,这将从索引0(整个数组)中复制a.length元素。
答案 3 :(得分:1)
您可以更改参考。 http://ideone.com/Rl3u4k
摘录
import java.util.*;
import java.lang.*;
class Main
{
public static void main (String[] args) throws java.lang.Exception
{
// array1 having three null elements
String[] array1 = new String[]{ "hello", "world", "from", "array1", null, null, null };
// array2 having no null elements
String[] array2 = new String[]{ "hi", "this", "is", "array2" };
// print array1
for (String value : array1)
{
System.out.println(value);
}
// swap values
array1 = array2;
// print array1 again
for (String value : array1)
{
System.out.println(value);
}
}
}
输出
// before changing
hello
world
from
array1
null
null
null
// after changing reference
hi
this
is
array2
答案 4 :(得分:1)
您应该使用System.arraycopy。
public class SystemDemo {
public static void main(String[] args) {
int arr1[] = { 1, 2, 3, 4, 5 };
int arr2[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
System.arraycopy(arr2, 5, arr1, 0, 5);
for (int i : arr1) {
System.out.println(i);
}
}
}
然后你会得到一个结果:
6
7
8
9
10