Java - 如何将Array中的元素移动到另一个数组?

时间:2014-04-25 20:26:33

标签: java arrays element move

我制作了这段代码:

Integer []array=new Integer[999];
   Integer []dump=new Integer[999];  
    for( int i=0;xconv!=0;++i){//ignore this

      array[i]=xconv%2;//ignore this
xconv=xconv/2;//ignore this
 System.out.println("array= "+array[i]+" xconv= "+xconv);//ignore this

   if(array[i]==null){//<<<<<<look here

   array[i]=ArrayUtils.toArray(dump, i);//<<<<<<<<<<<<<look here

 }
}
System.out.println(Arrays.toString(array));//<<<<<<look here

我希望IF结构将具有空值的元素移动到名为&#34; dump&#34;的另一个数组,因为如果我不这样做,它会一直显示一堆&#34; null&#34;读取最后一行时的值。我尝试使用ArrayUtils.toArray,但netbeans一直在说我错误地使用它。我应该怎么做,并让它只显示实际上有一些价值的元素?感谢

3 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

您似乎无法理解阵列是什么或它们是如何工作的 数组是固定长度的数据结构 该数组中的每个索引都可以包含一个值,或者可以为null。

听起来你正在寻找的是List,这是一个动态调整大小的数据结构(随着你添加和删除元素,它会增长和缩小)。

当您遍历List时,您将只看到它当前保存的元素,而不是数组,您需要遍历其长度并检查每个条目以查看其中是否存在值或不

如果您已经结婚使用数组进行计算,您仍然可以轻松地将它们转换为Lists以便显示。

而不是:

    System.out.println(Arrays.toString(array));//<<<<<<look here

试试这个:

    System.out.println(Arrays.asList(array));

答案 2 :(得分:0)

只需打印您关注的范围:

    int[] array = new int[999];
    int i;
    for (i = 0; xconv != 0; ++i)
    {
        array[i] = xconv % 2;
        xconv = xconv / 2;
        System.out.println("array= " + array[i] + " xconv= " + xconv);
    }
    System.out.println(Arrays.toString(Arrays.copyOf(array, i)));

更好的是,使用ArrayList

    List<Integer> array = new ArrayList<>();
    for (int i = 0; xconv != 0; ++i)
    {
        array.add(xconv % 2);
        xconv = xconv / 2;
        System.out.println("array= " + array.get(i) + " xconv= " + xconv);
    }
    System.out.println(array.toString());