java - 将两个数组合并为一个

标签 java arrays

我正在尝试将两个数组合并为一个大数组。 但我不明白为什么它不起作用。

这是我的代码:

     public class TestaCombine {

private int[] arrayX = new int[20];
private int[] arrayY = new int[6];

private int[] ratings;


public void getRanks(){

    arrayX[0] = 3;
    arrayX[1] = 4;
    arrayX[2] = 2;
    arrayX[3] = 6;
    arrayX[4] = 2;
    arrayX[5] = 5;

    arrayY[0] = 9;
    arrayY[1] = 7;
    arrayY[2] = 5;
    arrayY[3] = 10;
    arrayY[4] = 6;
    arrayY[5] = 8;

}


public void combine(){

    ratings = new int[arrayX.length + arrayY.length];
    System.arraycopy(arrayX, 0, ratings, 0,  arrayX.length);
    System.arraycopy(arrayY, 0, ratings, arrayX.length, arrayY.length);

    Arrays.sort(ratings);

}


public void print(){

    System.out.println(Arrays.toString(ratings));

}

public static void main(String[] args){

    TestaCombine tc = new TestaCombine();

    tc.getRanks();
    tc.combine();
    tc.print();

}

我得到的输出如下所示: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 3, 4, 5, 5, 6, 6, 7, 8, 9 , 10]

不明白所有的 0 从何而来。

最佳答案

请注意,arrayX 的大小为 20。默认情况下,int 在 Java 中的值为 0。请参阅JLS - 4.12.5. Initial Values of Variables :

For type int, the default value is zero, that is, 0.

所以当你这样做时:

System.arraycopy(arrayX, 0, ratings, 0,  arrayX.length);

它也会复制零。

关于java - 将两个数组合并为一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22807607/

相关文章:

java - 通过 javascript 禁用的 commandLink 仍然可以单击

java - 如何在没有 Outlook 的情况下发送 Outlook session 邀请(java、php 等)

Java 通过单击按钮隐藏由类扩展的 JFrame

ruby-on-rails - 使用 Ruby 和 SmarterCSV 解析 JSON 数组

c - 将文本文件的每一行转换为数组 c

java - 在 Java 中查找数组的维数

javascript - 从数组 Javascript/jquery 中删除特定元素

java - 如何在 Spring Mvc 中使用 BeanUtils.copyProperties 忽略对象中的某些字段

Javascript:对字符串数字数组进行排序

java - 如何保护已构建的 Spring Web 应用程序免受 XSS 和 CSRF 攻击?