Java 我应该如何连接数组

Java 我应该如何连接数组,java,Java,我正在使用一个返回一些整数的函数 int[] return; 这个函数在这样一个循环中 public static int[] toEOBArray(double[] tempVal) { int[] out; for (int i = 0; i < 10; i++) { out = fixArray(tempVal[i]); } return out; } public static int[]toEOBArray(双[]te

我正在使用一个返回一些整数的函数

int[] return;
这个函数在这样一个循环中

public static int[] toEOBArray(double[] tempVal) 
{
    int[] out;
    for (int i = 0; i < 10; i++)
    {
        out = fixArray(tempVal[i]);
    }
    return out;
}
public static int[]toEOBArray(双[]tempVal)
{
int[]out;
对于(int i=0;i<10;i++)
{
out=fixArray(tempVal[i]);
}
返回;
}
我想要的是,由于来自
fixArray
的新数组将它们添加到以前的结果中,所以最后我有一个大数组,它将包含来自
fixArray

最有效的方法是什么?
我的主要问题是不知道如何初始化保存所有值的数组。

如果只想处理数组,必须首先找到连接数组的长度。然后可以使用
System.arraycopy
将小数组复制到输出数组

public static int[] toEOBArray(double[] in) 
{
    int[][] arrays = new int[10][];
    int len = 0;
    for (int i = 0; i < 10; i++)
    {
        arrays[i] = fixArray(tempVal[i]);
        len += arrays[i].length;
    }
    int[] out = new int[len];
    int offset = 0;
    for (int i = 0; i < 10; i++)
    {
        System.arraycopy(arrays[i],0,out,offset,arrays[i].length);
        offset += arrays[i].length;
    }
    return out;
}
public static int[]toEOBArray(双[]in)
{
int[][]数组=新的int[10][];
int len=0;
对于(int i=0;i<10;i++)
{
数组[i]=fixArray(tempVal[i]);
len+=数组[i]。长度;
}
int[]out=新的int[len];
整数偏移=0;
对于(int i=0;i<10;i++)
{
System.arraycopy(数组[i],0,out,offset,数组[i].长度);
偏移量+=数组[i]。长度;
}
返回;
}

如果只想使用数组,必须首先找到连接数组的长度。然后可以使用
System.arraycopy
将小数组复制到输出数组

public static int[] toEOBArray(double[] in) 
{
    int[][] arrays = new int[10][];
    int len = 0;
    for (int i = 0; i < 10; i++)
    {
        arrays[i] = fixArray(tempVal[i]);
        len += arrays[i].length;
    }
    int[] out = new int[len];
    int offset = 0;
    for (int i = 0; i < 10; i++)
    {
        System.arraycopy(arrays[i],0,out,offset,arrays[i].length);
        offset += arrays[i].length;
    }
    return out;
}
public static int[]toEOBArray(双[]in)
{
int[][]数组=新的int[10][];
int len=0;
对于(int i=0;i<10;i++)
{
数组[i]=fixArray(tempVal[i]);
len+=数组[i]。长度;
}
int[]out=新的int[len];
整数偏移=0;
对于(int i=0;i<10;i++)
{
System.arraycopy(数组[i],0,out,offset,数组[i].长度);
偏移量+=数组[i]。长度;
}
返回;
}

如果您坚持使用本机数组(而不是像ArrayList这样的集合),那么您将希望使用from,它可以为Java本机数组添加许多类似集合的功能,其中一个是addAll:

ArrayUtils.addAll(fixArray, tempVal);

如果您坚持使用本机数组(而不是像ArrayList这样的集合),那么您将希望使用from,它将许多类似集合的功能添加到Java本机数组中,其中之一是addAll:

ArrayUtils.addAll(fixArray, tempVal);

然后使用数组列表!!如果你从未使用过参数中的
,它的作用是什么?@ChetanKinger修正了它。也是的,我正在阅读ArrayList的javadoc,这可能是我想要的。但是为了使用它,我还必须更改我的其他函数。那么就使用数组列表吧!!如果你从未使用过
参数中的
,它的作用是什么?@ChetanKinger修正了它。也是的,我正在阅读ArrayList的javadoc,这可能是我想要的。但是为了使用它,我也必须改变我的其他函数。这只是因为一些程序员仍然喜欢使用数组。。。但是好的,这是他们的选择。@Tom我同意只使用数组需要更多的代码,我可能更喜欢使用集合来聚合数组,但是使用数组也有性能优势(至少可以提前找到输出数组的所需长度—如果知道最终长度,可以使用该容量初始化ArrayList,并具有类似的性能)@Eran我正在使用Eclipse处理这个问题,我得到一个
警告,变量数组只能在这个位置为null
这有什么意义吗?@green_leaf my bad,请参阅edit,这是因为一些程序员仍然喜欢使用数组……但好吧,这是他们的选择。@Tom我同意只使用数组需要更多的代码,而且我可能更喜欢使用集合来聚合数组,但使用数组也有性能优势(至少提前找到输出数组的所需长度是这样的-如果知道最终长度,可以使用该容量初始化ArrayList,并具有类似的性能)@Eran我正在使用Eclipse处理这个问题,我得到一个
警告,变量数组只能在这个位置为null
警告。这有什么意义吗?@green\u leaf my bad,请参见编辑