【问题标题】:Java - How to move element in Array to another Array?Java - 如何将数组中的元素移动到另一个数组?
【发布时间】:2014-04-25 20:26:32
【问题描述】:

我编写了这段代码:

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 结构将具有空值的元素移动到另一个名为“dump”的数组中,因为如果我不这样做,它会在读取最后一行时一直显示一堆“空”值。我尝试使用 ArrayUtils.toArray 但 netbeans 一直说我错误地使用它。我应该如何做到这一点并使其仅显示内部实际上具有某些价值的元素?谢谢

【问题讨论】:

  • 你不能移动那些为空的元素,它们是空的,因为那里没有元素。
  • new Integer[999] 创建一个包含 999 个对 Integer 对象的引用的数组,所有这些引用都以默认值 null 开头。确定要Integer 数组而不是int 数组吗?

标签: java arrays element move


【解决方案1】:

【讨论】:

  • 是的,我现在发现了 xD
【解决方案2】:

您似乎不了解数组是什么或它们是如何工作的。
数组是一种固定长度的数据结构。
该数组中的每个索引都可能包含一个值,也可能为空。

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

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

如果您习惯于使用数组进行计算,您仍然可以轻松地将它们转换为 Lists 以进行显示。

而不是这个:

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

试试这个:

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

【讨论】:

  • 感谢您的解释,但是该代码对我不起作用,空值仍然显示。那我要把它改成一个列表。再次感谢!
【解决方案3】:

只打印你关心的范围:

    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());

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-29
    • 1970-01-01
    • 2011-07-15
    • 1970-01-01
    • 2023-03-29
    相关资源
    最近更新 更多