我希望选择两个int[] arrays
,并将它们连接成一个。{1}}。我意识到这里已经发布了不少帖子,但他们都使用了我不熟悉的更高级脚本(System.arraycopy
等)。我可以很容易地使用它们,但我不知道为什么我使用这些方法。
我期待的计划是将我的数组设置为Strings
(使用toString()
方法),然后使用for loop
跟踪它们。每次找到整数时,它都会将其打印到最初初始化为""的新String的末尾。
示例(间距换行符):
array1 = [1,2,3,4];
array2 = [5,6,7];
array3 = [1,2,3,4,5,6,7]; //这就是数组的样子。
任何人都可以就我提出的方法向我提出任何建议来完成这部分工作吗?
答案 0 :(得分:3)
您不需要在此处使用字符串。只需获得一个新的数组:
int[] array3 = new int[array1.length + array2.length];
现在您可以使用arraycopy
复制两个数组,或者如果您不喜欢这样,只需使用循环。我猜你已经从其他地方知道如何使用arraycopy
。至于循环,你可以有两个循环,一个从0
到array1.length
,从array1
复制到array3
,另一个从0
到{{}从array2.length
中的索引array2
开始,将array3
复制到array1.length
。
如果要随后打印阵列,请使用Arrays.toString()
答案 1 :(得分:3)
无需使用String
。您可以只分配一个与其他两个组合的大小的新数组,并将所有值复制到其中:
int[] array1 = ...;
int[] array2 = ...;
int[] result = new int[array1.length + array2.length];
for (int i = 0; i < array1.length; ++i) {
result[i] = array1[i];
}
for (int i = 0; i < array2.length; ++i) {
result[array1.length + i] = array2[i];
}
当然,您可以使用System.arrayCopy
更有效地进行复制,但校长仍然有效。
答案 2 :(得分:1)
如果您不想使用内置方法arraycopy
,请手动执行。创建一个大小为arr1+arr2
的第三个数组,然后遍历两个数组并将其内容存储到arr3
。像
int size = arr1.length + arr2.length;
int indexval=0;
int[] arr3 = new int[size];
for(int i=0;i<arr1.length;i++)
{
arr3[i] = arr1[i];
indexval++;
}
for(int i=0,i<arr2.length;i++)
{
arr3[indexval] = arr2[i];
indexval++;
}
答案 3 :(得分:0)
您可以使用Apache Commons的ArrayUtils
int [] array1 = {1,2,3, 4};
int [] array2 = {5,6,7};
int [] array3 = ArrayUtils.addAll(array1, array2);
答案 4 :(得分:0)
使用Apache Commons Lang库
int[] array1 = { 1, 2, 3, 4, 5 };
int[] array2 = { 6, 7, 8, 9, 10 };
int[] array3 = ArrayUtils.addAll(array1, array2);
http://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/ArrayUtils.html#addAll(int [],int [])